diff --git a/examples/clue_solver.ds b/examples/clue_solver.ds index e62c7da..212e739 100644 --- a/examples/clue_solver.ds +++ b/examples/clue_solver.ds @@ -1,10 +1,4 @@ -type Cards { - rooms <[str]> - suspects <[str]> - weapons <[str]> -} - -cards = Cards { +Cards = struct { rooms = ['Library' 'Kitchen' 'Conservatory'] suspects = ['White' 'Green' 'Scarlett'] weapons = ['Rope' 'Lead_Pipe' 'Knife'] @@ -51,6 +45,8 @@ take_turn = (cards , opponent_card , current_room ) { make_guess(cards current_room) } +cards = new Cards + take_turn(cards 'Rope' 'Kitchen') take_turn(cards 'Library' 'Kitchen') take_turn(cards 'Conservatory' 'Kitchen') diff --git a/src/abstract_tree/assignment.rs b/src/abstract_tree/assignment.rs index 9f68362..9710d28 100644 --- a/src/abstract_tree/assignment.rs +++ b/src/abstract_tree/assignment.rs @@ -1,7 +1,9 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Identifier, Map, Result, Statement, Type, TypeDefinition, Value}; +use crate::{ + AbstractTree, Error, Identifier, Result, Statement, Structure, Type, TypeDefinition, Value, +}; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] pub struct Assignment { @@ -19,7 +21,7 @@ pub enum AssignmentOperator { } impl AbstractTree for Assignment { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "assignment", node)?; let child_count = node.child_count(); @@ -74,7 +76,7 @@ impl AbstractTree for Assignment { }) } - fn check_type(&self, context: &Map) -> Result<()> { + fn check_type(&self, context: &Structure) -> Result<()> { let statement_type = self.statement.expected_type(context)?; if let Some(type_definition) = &self.type_definition { @@ -110,7 +112,7 @@ impl AbstractTree for Assignment { Ok(()) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let key = self.identifier.inner(); let value = self.statement.run(source, context)?; @@ -143,7 +145,7 @@ impl AbstractTree for Assignment { Ok(Value::none()) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(Type::None) } } diff --git a/src/abstract_tree/block.rs b/src/abstract_tree/block.rs index ebe55af..a530878 100644 --- a/src/abstract_tree/block.rs +++ b/src/abstract_tree/block.rs @@ -4,7 +4,7 @@ use rayon::prelude::*; use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Map, Result, Statement, Type, Value}; +use crate::{AbstractTree, Error, Result, Statement, Structure, Type, Value}; /// Abstract representation of a block. /// @@ -21,7 +21,7 @@ pub struct Block { } impl AbstractTree for Block { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "block", node)?; let first_child = node.child(0).unwrap(); @@ -50,7 +50,7 @@ impl AbstractTree for Block { }) } - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { for statement in &self.statements { if let Statement::Return(inner_statement) = statement { return inner_statement.check_type(_context); @@ -62,7 +62,7 @@ impl AbstractTree for Block { Ok(()) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { if self.is_async { let statements = &self.statements; let final_result = RwLock::new(Ok(Value::none())); @@ -111,7 +111,7 @@ impl AbstractTree for Block { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { if let Some(statement) = self.statements.iter().find(|statement| { if let Statement::Return(_) = statement { true diff --git a/src/abstract_tree/built_in_value.rs b/src/abstract_tree/built_in_value.rs index 9fa9bd4..ac3a11c 100644 --- a/src/abstract_tree/built_in_value.rs +++ b/src/abstract_tree/built_in_value.rs @@ -5,7 +5,7 @@ use tree_sitter::Node; use crate::{ built_in_functions::string_functions, AbstractTree, BuiltInFunction, Function, Identifier, - List, Map, Result, Type, TypeDefinition, Value, + List, Result, Structure, Type, Value, }; static ARGS: OnceLock = OnceLock::new(); @@ -31,29 +31,12 @@ impl BuiltInValue { match self { BuiltInValue::Args => Type::list(Type::String), BuiltInValue::AssertEqual => BuiltInFunction::AssertEqual.r#type(), - BuiltInValue::Fs => Type::Map(Vec::new()), - BuiltInValue::Json => Type::Map(Vec::new()), + BuiltInValue::Fs => Type::Structure(Identifier::from("fs")), + BuiltInValue::Json => Type::Structure(Identifier::from("json")), BuiltInValue::Length => BuiltInFunction::Length.r#type(), BuiltInValue::Output => BuiltInFunction::Output.r#type(), - BuiltInValue::Random => Type::Map(vec![ - ( - Identifier::new("boolean".to_string()), - TypeDefinition::new(BuiltInFunction::RandomBoolean.r#type()), - ), - ( - Identifier::new("float".to_string()), - TypeDefinition::new(BuiltInFunction::RandomFloat.r#type()), - ), - ( - Identifier::new("from".to_string()), - TypeDefinition::new(BuiltInFunction::RandomFrom.r#type()), - ), - ( - Identifier::new("integer".to_string()), - TypeDefinition::new(BuiltInFunction::RandomInteger.r#type()), - ), - ]), - BuiltInValue::String => Type::Map(Vec::new()), + BuiltInValue::Random => Type::Structure(Identifier::from("random")), + BuiltInValue::String => Type::Structure(Identifier::from("string")), } } @@ -68,7 +51,7 @@ impl BuiltInValue { &Value::Function(Function::BuiltIn(BuiltInFunction::AssertEqual)) } BuiltInValue::Fs => FS.get_or_init(|| { - let fs_context = Map::new(); + let fs_context = Structure::default(); fs_context .set( @@ -78,10 +61,10 @@ impl BuiltInValue { ) .unwrap(); - Value::Map(fs_context) + Value::Structure(fs_context) }), BuiltInValue::Json => JSON.get_or_init(|| { - let json_context = Map::new(); + let json_context = Structure::default(); json_context .set( @@ -91,12 +74,12 @@ impl BuiltInValue { ) .unwrap(); - Value::Map(json_context) + Value::Structure(json_context) }), BuiltInValue::Length => &Value::Function(Function::BuiltIn(BuiltInFunction::Length)), BuiltInValue::Output => &Value::Function(Function::BuiltIn(BuiltInFunction::Output)), BuiltInValue::Random => RANDOM.get_or_init(|| { - let random_context = Map::new(); + let random_context = Structure::default(); { let mut variables = random_context.variables_mut().unwrap(); @@ -115,10 +98,10 @@ impl BuiltInValue { } } - Value::Map(random_context) + Value::Structure(random_context) }), BuiltInValue::String => STRING.get_or_init(|| { - let string_context = Map::new(); + let string_context = Structure::default(); { let mut variables = string_context.variables_mut().unwrap(); @@ -134,14 +117,14 @@ impl BuiltInValue { } } - Value::Map(string_context) + Value::Structure(string_context) }), } } } impl AbstractTree for BuiltInValue { - fn from_syntax_node(_source: &str, node: Node, _context: &Map) -> Result { + fn from_syntax_node(_source: &str, node: Node, _context: &Structure) -> Result { let built_in_value = match node.kind() { "args" => BuiltInValue::Args, "assert_equal" => BuiltInValue::AssertEqual, @@ -157,11 +140,11 @@ impl AbstractTree for BuiltInValue { Ok(built_in_value) } - fn run(&self, _source: &str, _context: &Map) -> Result { + fn run(&self, _source: &str, _context: &Structure) -> Result { Ok(self.get().clone()) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(self.r#type()) } } diff --git a/src/abstract_tree/expression.rs b/src/abstract_tree/expression.rs index 4930236..add7d17 100644 --- a/src/abstract_tree/expression.rs +++ b/src/abstract_tree/expression.rs @@ -2,7 +2,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - value_node::ValueNode, AbstractTree, Error, Identifier, Index, Map, Result, Type, Value, Yield, + value_node::ValueNode, AbstractTree, Error, Identifier, Index, Result, Structure, Type, Value, + Yield, }; use super::{function_call::FunctionCall, logic::Logic, math::Math}; @@ -24,7 +25,7 @@ pub enum Expression { } impl AbstractTree for Expression { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "expression", node)?; let child = if node.child(0).unwrap().is_named() { @@ -65,7 +66,7 @@ impl AbstractTree for Expression { Ok(expression) } - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { match self { Expression::Value(value_node) => value_node.check_type(_context), Expression::Identifier(identifier) => identifier.check_type(_context), @@ -77,7 +78,7 @@ impl AbstractTree for Expression { } } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { match self { Expression::Value(value_node) => value_node.run(source, context), Expression::Identifier(identifier) => identifier.run(source, context), @@ -89,7 +90,7 @@ impl AbstractTree for Expression { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match self { Expression::Value(value_node) => value_node.expected_type(context), Expression::Identifier(identifier) => identifier.expected_type(context), diff --git a/src/abstract_tree/for.rs b/src/abstract_tree/for.rs index 144c47e..2c1f89a 100644 --- a/src/abstract_tree/for.rs +++ b/src/abstract_tree/for.rs @@ -2,7 +2,7 @@ use rayon::prelude::*; use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Block, Error, Expression, Identifier, Map, Result, Type, Value}; +use crate::{AbstractTree, Block, Error, Expression, Identifier, Result, Structure, Type, Value}; /// Abstract representation of a for loop statement. #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -14,7 +14,7 @@ pub struct For { } impl AbstractTree for For { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "for", node)?; let for_node = node.child(0).unwrap(); @@ -48,21 +48,21 @@ impl AbstractTree for For { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let expression_run = self.collection.run(source, context)?; let values = expression_run.as_list()?.items(); let key = self.item_id.inner(); if self.is_async { values.par_iter().try_for_each(|value| { - let iter_context = Map::clone_from(context)?; + let iter_context = Structure::clone_from(context)?; iter_context.set(key.clone(), value.clone(), None)?; self.block.run(source, &iter_context).map(|_value| ()) })?; } else { - let loop_context = Map::clone_from(context)?; + let loop_context = Structure::clone_from(context)?; for value in values.iter() { loop_context.set(key.clone(), value.clone(), None)?; @@ -74,7 +74,7 @@ impl AbstractTree for For { Ok(Value::none()) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(Type::None) } } diff --git a/src/abstract_tree/function_call.rs b/src/abstract_tree/function_call.rs index 9b7aa14..f88680c 100644 --- a/src/abstract_tree/function_call.rs +++ b/src/abstract_tree/function_call.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Expression, FunctionExpression, Map, Result, Type, Value}; +use crate::{AbstractTree, Error, Expression, FunctionExpression, Result, Structure, Type, Value}; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] pub struct FunctionCall { @@ -19,7 +19,7 @@ impl FunctionCall { } impl AbstractTree for FunctionCall { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "function_call", node)?; let function_node = node.child(0).unwrap(); @@ -44,7 +44,7 @@ impl AbstractTree for FunctionCall { }) } - fn check_type(&self, context: &Map) -> Result<()> { + fn check_type(&self, context: &Structure) -> Result<()> { let function_expression_type = self.function_expression.expected_type(context)?; let parameter_types = if let Type::Function { parameter_types, .. @@ -65,7 +65,7 @@ impl AbstractTree for FunctionCall { if self.arguments.len() != parameter_types.len() { return Err(Error::ExpectedFunctionArgumentAmount { - source: "TODO".to_string(), + source: "TODO".to_string(), // TODO expected: parameter_types.len(), actual: self.arguments.len(), }); @@ -74,7 +74,7 @@ impl AbstractTree for FunctionCall { Ok(()) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let (name, value) = match &self.function_expression { FunctionExpression::Identifier(identifier) => { let key = identifier.inner(); @@ -118,7 +118,7 @@ impl AbstractTree for FunctionCall { .call(name, &arguments, source, context) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match &self.function_expression { FunctionExpression::Identifier(identifier) => { let identifier_type = identifier.expected_type(context)?; diff --git a/src/abstract_tree/function_expression.rs b/src/abstract_tree/function_expression.rs index 85e7868..d123c56 100644 --- a/src/abstract_tree/function_expression.rs +++ b/src/abstract_tree/function_expression.rs @@ -2,8 +2,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - AbstractTree, Error, FunctionCall, Identifier, Index, Map, Result, Type, Value, ValueNode, - Yield, + AbstractTree, Error, FunctionCall, Identifier, Index, Result, Structure, Type, Value, + ValueNode, Yield, }; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -16,7 +16,7 @@ pub enum FunctionExpression { } impl AbstractTree for FunctionExpression { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "function_expression", node)?; let first_child = node.child(0).unwrap(); @@ -54,7 +54,7 @@ impl AbstractTree for FunctionExpression { Ok(function_expression) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { match self { FunctionExpression::Identifier(identifier) => identifier.run(source, context), FunctionExpression::FunctionCall(function_call) => function_call.run(source, context), @@ -64,7 +64,7 @@ impl AbstractTree for FunctionExpression { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match self { FunctionExpression::Identifier(identifier) => identifier.expected_type(context), FunctionExpression::FunctionCall(function_call) => function_call.expected_type(context), diff --git a/src/abstract_tree/function_node.rs b/src/abstract_tree/function_node.rs index 66bac94..b69abe2 100644 --- a/src/abstract_tree/function_node.rs +++ b/src/abstract_tree/function_node.rs @@ -2,7 +2,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - AbstractTree, Block, Error, Function, Identifier, Map, Result, Type, TypeDefinition, Value, + AbstractTree, Block, Error, Function, Identifier, Result, Structure, Type, TypeDefinition, + Value, }; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)] @@ -48,10 +49,10 @@ impl FunctionNode { name: Option, arguments: &[Value], source: &str, - outer_context: &Map, + outer_context: &Structure, ) -> Result { let parameter_argument_pairs = self.parameters.iter().zip(arguments.iter()); - let function_context = Map::clone_from(outer_context)?; + let function_context = Structure::clone_from(outer_context)?; for (identifier, value) in parameter_argument_pairs { let key = identifier.inner().clone(); @@ -74,7 +75,7 @@ impl FunctionNode { } impl AbstractTree for FunctionNode { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "function", node)?; let child_count = node.child_count(); @@ -97,7 +98,7 @@ impl AbstractTree for FunctionNode { } } - let function_context = Map::clone_from(context)?; + let function_context = Structure::clone_from(context)?; for (parameter_name, parameter_type) in parameters.iter().zip(parameter_types.iter()) { function_context.set( @@ -118,18 +119,18 @@ impl AbstractTree for FunctionNode { Ok(FunctionNode::new(parameters, body, r#type)) } - fn check_type(&self, context: &Map) -> Result<()> { + fn check_type(&self, context: &Structure) -> Result<()> { self.return_type() .check(&self.body.expected_type(context)?)?; Ok(()) } - fn run(&self, _source: &str, _context: &Map) -> Result { + fn run(&self, _source: &str, _context: &Structure) -> Result { Ok(Value::Function(Function::ContextDefined(self.clone()))) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(self.r#type().clone()) } } diff --git a/src/abstract_tree/identifier.rs b/src/abstract_tree/identifier.rs index ceaabbd..5e1ae31 100644 --- a/src/abstract_tree/identifier.rs +++ b/src/abstract_tree/identifier.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Map, Result, Type, Value}; +use crate::{AbstractTree, Error, Result, Structure, Type, Value}; /// A string by which a variable is known to a context. /// @@ -25,7 +25,7 @@ impl Identifier { } impl AbstractTree for Identifier { - fn from_syntax_node(source: &str, node: Node, _context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, _context: &Structure) -> Result { Error::expect_syntax_node(source, "identifier", node)?; let text = &source[node.byte_range()]; @@ -35,7 +35,7 @@ impl AbstractTree for Identifier { Ok(Identifier(text.to_string())) } - fn run(&self, _source: &str, context: &Map) -> Result { + fn run(&self, _source: &str, context: &Structure) -> Result { if let Some((value, _)) = context.variables()?.get(&self.0) { if !value.is_none() { return Ok(value.clone()); @@ -45,7 +45,7 @@ impl AbstractTree for Identifier { Err(Error::VariableIdentifierNotFound(self.0.clone())) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { if let Some((_value, r#type)) = context.variables()?.get(&self.0) { Ok(r#type.clone()) } else { @@ -53,3 +53,15 @@ impl AbstractTree for Identifier { } } } + +impl From for Identifier { + fn from(string: String) -> Self { + Identifier(string) + } +} + +impl From<&str> for Identifier { + fn from(str: &str) -> Self { + Identifier(str.to_string()) + } +} diff --git a/src/abstract_tree/if_else.rs b/src/abstract_tree/if_else.rs index 1baf0ec..b7f608a 100644 --- a/src/abstract_tree/if_else.rs +++ b/src/abstract_tree/if_else.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Block, Expression, Map, Result, Type, Value}; +use crate::{AbstractTree, Block, Expression, Result, Structure, Type, Value}; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] pub struct IfElse { @@ -13,7 +13,7 @@ pub struct IfElse { } impl AbstractTree for IfElse { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { let if_expression_node = node.child(0).unwrap().child(1).unwrap(); let if_expression = Expression::from_syntax_node(source, if_expression_node, context)?; @@ -55,7 +55,7 @@ impl AbstractTree for IfElse { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let if_boolean = self.if_expression.run(source, context)?.as_boolean()?; if if_boolean { @@ -81,7 +81,7 @@ impl AbstractTree for IfElse { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.if_block.expected_type(context) } } diff --git a/src/abstract_tree/index.rs b/src/abstract_tree/index.rs index 3b5f272..cf6ba4d 100644 --- a/src/abstract_tree/index.rs +++ b/src/abstract_tree/index.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, IndexExpression, List, Map, Result, Type, Value}; +use crate::{AbstractTree, Error, IndexExpression, List, Result, Structure, Type, Value}; /// Abstract representation of an index expression. /// @@ -14,7 +14,7 @@ pub struct Index { } impl AbstractTree for Index { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "index", node)?; let collection_node = node.child(0).unwrap(); @@ -41,7 +41,7 @@ impl AbstractTree for Index { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let collection = self.collection.run(source, context)?; match collection { @@ -59,11 +59,12 @@ impl AbstractTree for Index { Ok(item) } - Value::Map(map) => { + Value::Structure(structure) => { let value = if let IndexExpression::Identifier(identifier) = &self.index { let key = identifier.inner(); - map.variables()? + structure + .variables()? .get(key) .map(|(value, _)| value.clone()) .unwrap_or_default() @@ -71,7 +72,8 @@ impl AbstractTree for Index { let value = self.index.run(source, context)?; let key = value.as_string()?; - map.variables()? + structure + .variables()? .get(key.as_str()) .map(|(value, _)| value.clone()) .unwrap_or_default() @@ -89,19 +91,50 @@ impl AbstractTree for Index { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match self.collection.expected_type(context)? { Type::List(item_type) => Ok(*item_type.clone()), - Type::Map(identifier_types) => { - if let IndexExpression::Identifier(index_identifier) = &self.index { - for (identifier, r#type) in identifier_types { - if &identifier == index_identifier { - return Ok(r#type.take_inner()); - } - } - } + Type::Structure(definition_identifier) => { + let (r#type, key) = if let IndexExpression::Identifier(identifier) = &self.index { + let get_type = context + .variables()? + .get(definition_identifier.inner()) + .map(|(_, r#type)| r#type.clone()); - Ok(Type::None) + if let Some(r#type) = get_type { + (r#type, identifier.inner()) + } else { + return Err(Error::VariableIdentifierNotFound( + definition_identifier.inner().clone(), + )); + } + } else { + return Err(Error::ExpectedIndexIdentifier { + actual: self.index.clone(), + }); + }; + + if let Type::StructureDefinition(instantiator) = &r#type { + let get_type = instantiator.get(key); + + if let Some((statement_option, type_option)) = get_type { + let r#type = if let Some(r#type) = type_option { + r#type.inner().clone() + } else { + if let Some(statement) = statement_option { + statement.expected_type(context)? + } else { + Type::None + } + }; + + Ok(r#type) + } else { + Err(Error::VariableIdentifierNotFound(key.clone())) + } + } else { + Err(Error::ExpectedStructureDefinition { actual: r#type }) + } } Type::None => Ok(Type::None), r#type => Ok(r#type), diff --git a/src/abstract_tree/index_assignment.rs b/src/abstract_tree/index_assignment.rs index 8689778..65ad40a 100644 --- a/src/abstract_tree/index_assignment.rs +++ b/src/abstract_tree/index_assignment.rs @@ -1,7 +1,9 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Index, IndexExpression, Map, Result, Statement, Type, Value}; +use crate::{ + AbstractTree, Error, Index, IndexExpression, Result, Statement, Structure, Type, Value, +}; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] pub struct IndexAssignment { @@ -18,7 +20,7 @@ pub enum AssignmentOperator { } impl AbstractTree for IndexAssignment { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "index_assignment", node)?; let index_node = node.child(0).unwrap(); @@ -49,9 +51,9 @@ impl AbstractTree for IndexAssignment { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let index_collection = self.index.collection.run(source, context)?; - let index_context = index_collection.as_map().unwrap_or(context); + let index_context = index_collection.as_structure().unwrap_or(context); let index_key = if let IndexExpression::Identifier(identifier) = &self.index.index { identifier.inner() } else { @@ -91,7 +93,7 @@ impl AbstractTree for IndexAssignment { Ok(Value::none()) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(Type::None) } } diff --git a/src/abstract_tree/index_expression.rs b/src/abstract_tree/index_expression.rs index 84ccd50..8dea760 100644 --- a/src/abstract_tree/index_expression.rs +++ b/src/abstract_tree/index_expression.rs @@ -1,8 +1,8 @@ use serde::{Deserialize, Serialize}; use crate::{ - value_node::ValueNode, AbstractTree, Error, FunctionCall, Identifier, Index, Map, Result, Type, - Value, + value_node::ValueNode, AbstractTree, Error, FunctionCall, Identifier, Index, Result, Structure, + Type, Value, }; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -14,7 +14,11 @@ pub enum IndexExpression { } impl AbstractTree for IndexExpression { - fn from_syntax_node(source: &str, node: tree_sitter::Node, context: &Map) -> Result { + fn from_syntax_node( + source: &str, + node: tree_sitter::Node, + context: &Structure, + ) -> Result { Error::expect_syntax_node(source, "index_expression", node)?; let first_child = node.child(0).unwrap(); @@ -48,7 +52,7 @@ impl AbstractTree for IndexExpression { Ok(abstract_node) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { match self { IndexExpression::Value(value_node) => value_node.run(source, context), IndexExpression::Identifier(identifier) => identifier.run(source, context), @@ -57,7 +61,7 @@ impl AbstractTree for IndexExpression { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match self { IndexExpression::Value(value_node) => value_node.expected_type(context), IndexExpression::Identifier(identifier) => identifier.expected_type(context), diff --git a/src/abstract_tree/logic.rs b/src/abstract_tree/logic.rs index aab8ddb..4866223 100644 --- a/src/abstract_tree/logic.rs +++ b/src/abstract_tree/logic.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Expression, Map, Result, Type, Value}; +use crate::{AbstractTree, Error, Expression, Result, Structure, Type, Value}; /// Abstract representation of a logic expression. #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -12,7 +12,7 @@ pub struct Logic { } impl AbstractTree for Logic { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "logic", node)?; let first_node = node.child(0).unwrap(); @@ -59,7 +59,7 @@ impl AbstractTree for Logic { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let left = self.left.run(source, context)?; let right = self.right.run(source, context)?; let result = match self.operator { @@ -88,7 +88,7 @@ impl AbstractTree for Logic { Ok(Value::Boolean(result)) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(Type::Boolean) } } diff --git a/src/abstract_tree/match.rs b/src/abstract_tree/match.rs index f0f436d..29f4b04 100644 --- a/src/abstract_tree/match.rs +++ b/src/abstract_tree/match.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Expression, Map, Result, Statement, Type, Value}; +use crate::{AbstractTree, Error, Expression, Result, Statement, Structure, Type, Value}; /// Abstract representation of a match statement. #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -17,7 +17,7 @@ pub struct Match { } impl AbstractTree for Match { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "match", node)?; let matcher_node = node.child(1).unwrap(); @@ -58,7 +58,7 @@ impl AbstractTree for Match { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let matcher_value = self.matcher.run(source, context)?; for (expression, statement) in &self.options { @@ -76,7 +76,7 @@ impl AbstractTree for Match { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { let (_, first_statement) = self.options.first().unwrap(); first_statement.expected_type(context) diff --git a/src/abstract_tree/math.rs b/src/abstract_tree/math.rs index 29c082f..9ab2a4e 100644 --- a/src/abstract_tree/math.rs +++ b/src/abstract_tree/math.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Expression, Map, Result, Type, Value}; +use crate::{AbstractTree, Error, Expression, Result, Structure, Type, Value}; /// Abstract representation of a math operation. /// @@ -15,7 +15,7 @@ pub struct Math { } impl AbstractTree for Math { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "math", node)?; let left_node = node.child(0).unwrap(); @@ -48,7 +48,7 @@ impl AbstractTree for Math { }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let left = self.left.run(source, context)?; let right = self.right.run(source, context)?; let value = match self.operator { @@ -62,7 +62,7 @@ impl AbstractTree for Math { Ok(value) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.left.expected_type(context) } } diff --git a/src/abstract_tree/mod.rs b/src/abstract_tree/mod.rs index 18dca33..185d636 100644 --- a/src/abstract_tree/mod.rs +++ b/src/abstract_tree/mod.rs @@ -23,6 +23,7 @@ pub mod logic; pub mod r#match; pub mod math; pub mod statement; +pub mod structure_instantiator; pub mod type_definition; pub mod value_node; pub mod r#while; @@ -32,19 +33,20 @@ pub use { assignment::*, block::*, built_in_value::*, expression::*, function_call::*, function_expression::*, function_node::*, identifier::*, if_else::*, index::*, index_assignment::IndexAssignment, index_expression::*, logic::*, math::*, r#for::*, - r#match::*, r#while::*, r#yield::*, statement::*, type_definition::*, value_node::*, + r#match::*, r#while::*, r#yield::*, statement::*, structure_instantiator::*, + type_definition::*, value_node::*, }; use tree_sitter::Node; -use crate::{Error, Map, Result, Value}; +use crate::{Error, Result, Structure, Value}; pub struct Root { statements: Vec, } impl AbstractTree for Root { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "root", node)?; let statement_count = node.child_count(); @@ -60,7 +62,7 @@ impl AbstractTree for Root { Ok(Root { statements }) } - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { for statement in &self.statements { if let Statement::Return(inner_statement) = statement { return inner_statement.check_type(_context); @@ -72,7 +74,7 @@ impl AbstractTree for Root { Ok(()) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { let mut value = Value::none(); for statement in &self.statements { @@ -86,7 +88,7 @@ impl AbstractTree for Root { Ok(value) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.statements.last().unwrap().expected_type(context) } } @@ -103,15 +105,15 @@ pub trait AbstractTree: Sized { /// /// If necessary, the source code can be accessed directly by getting the /// node's byte range. - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result; + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result; /// Verify the type integrity of the node. - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { Ok(()) } /// Execute dust code by traversing the tree. - fn run(&self, source: &str, context: &Map) -> Result; + fn run(&self, source: &str, context: &Structure) -> Result; - fn expected_type(&self, context: &Map) -> Result; + fn expected_type(&self, context: &Structure) -> Result; } diff --git a/src/abstract_tree/statement.rs b/src/abstract_tree/statement.rs index 861983b..6304dd4 100644 --- a/src/abstract_tree/statement.rs +++ b/src/abstract_tree/statement.rs @@ -2,8 +2,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - AbstractTree, Assignment, Block, Error, Expression, For, IfElse, IndexAssignment, Map, Match, - Result, Type, Value, While, + AbstractTree, Assignment, Block, Error, Expression, For, IfElse, IndexAssignment, Match, + Result, Structure, Type, Value, While, }; /// Abstract representation of a statement. @@ -21,7 +21,7 @@ pub enum Statement { } impl AbstractTree for Statement { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "statement", node)?; let child = node.child(0).unwrap(); @@ -66,7 +66,7 @@ impl AbstractTree for Statement { } } - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { match self { Statement::Assignment(assignment) => assignment.check_type(_context), Statement::Expression(expression) => expression.check_type(_context), @@ -80,7 +80,7 @@ impl AbstractTree for Statement { } } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { match self { Statement::Assignment(assignment) => assignment.run(source, context), Statement::Expression(expression) => expression.run(source, context), @@ -94,7 +94,7 @@ impl AbstractTree for Statement { } } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { match self { Statement::Assignment(assignment) => assignment.expected_type(context), Statement::Expression(expression) => expression.expected_type(context), diff --git a/src/abstract_tree/structure_instantiator.rs b/src/abstract_tree/structure_instantiator.rs new file mode 100644 index 0000000..a19274e --- /dev/null +++ b/src/abstract_tree/structure_instantiator.rs @@ -0,0 +1,111 @@ +use std::collections::{btree_map, BTreeMap}; + +use serde::{Deserialize, Serialize}; + +use crate::{ + AbstractTree, Error, Identifier, Result, Statement, Structure, Type, TypeDefinition, Value, +}; + +#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] +pub struct StructureInstantiator(BTreeMap, Option)>); + +impl StructureInstantiator { + pub fn new() -> Self { + StructureInstantiator(BTreeMap::new()) + } + + pub fn get(&self, key: &str) -> Option<&(Option, Option)> { + self.0.get(key) + } + + pub fn set( + &mut self, + key: String, + statement: Option, + type_definition: Option, + ) { + self.0.insert(key, (statement, type_definition)); + } + + pub fn iter(&self) -> btree_map::Iter<'_, String, (Option, Option)> { + self.0.iter() + } +} + +impl AbstractTree for StructureInstantiator { + fn from_syntax_node( + source: &str, + node: tree_sitter::Node, + context: &Structure, + ) -> crate::Result { + Error::expect_syntax_node(source, "structure_instantiator", node)?; + + let child_count = node.child_count(); + let mut instantiator = StructureInstantiator::new(); + let mut current_key = "".to_string(); + let mut current_type = None; + + for index in 1..child_count - 1 { + let child_syntax_node = node.child(index).unwrap(); + + if child_syntax_node.kind() == "identifier" { + if let Some(type_definition) = current_type { + instantiator.set(current_key, None, Some(type_definition)); + + current_type = None; + } + + current_key = + Identifier::from_syntax_node(source, child_syntax_node, context)?.take_inner(); + } + + if child_syntax_node.kind() == "type_definition" { + current_type = Some(TypeDefinition::from_syntax_node( + source, + child_syntax_node, + context, + )?); + } + + if child_syntax_node.kind() == "statement" { + let statement = Statement::from_syntax_node(source, child_syntax_node, context)?; + + instantiator.set(current_key.clone(), Some(statement), current_type.clone()); + + current_type = None; + } + } + + Ok(instantiator) + } + + fn run(&self, source: &str, context: &Structure) -> Result { + let mut variables = BTreeMap::new(); + + for (key, (statement_option, type_definition_option)) in &self.0 { + let (value, r#type) = match (statement_option, type_definition_option) { + (Some(statement), Some(type_definition)) => { + let value = statement.run(source, context)?; + + (value, type_definition.inner().clone()) + } + (Some(statement), None) => { + let value = statement.run(source, context)?; + let r#type = value.r#type(); + + (value, r#type) + } + (None, Some(r#type)) => (Value::none(), r#type.inner().clone()), + (None, None) => (Value::none(), Type::None), + }; + + variables.insert(key.clone(), (value, r#type)); + } + + Ok(Value::Structure(Structure::new(variables, self.clone()))) + } + + fn expected_type(&self, _context: &Structure) -> Result { + todo!() + } +} diff --git a/src/abstract_tree/type_definition.rs b/src/abstract_tree/type_definition.rs index b3344b3..99b7fd1 100644 --- a/src/abstract_tree/type_definition.rs +++ b/src/abstract_tree/type_definition.rs @@ -3,7 +3,7 @@ use std::fmt::{self, Display, Formatter}; use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Error, Identifier, Map, Result, Value}; +use crate::{AbstractTree, Error, Identifier, Result, Structure, StructureInstantiator, Value}; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] pub struct TypeDefinition { @@ -25,7 +25,7 @@ impl TypeDefinition { } impl AbstractTree for TypeDefinition { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "type_definition", node)?; let type_node = node.child(1).unwrap(); @@ -34,11 +34,11 @@ impl AbstractTree for TypeDefinition { Ok(TypeDefinition { r#type }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { self.r#type.run(source, context) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.r#type.expected_type(context) } } @@ -61,10 +61,11 @@ pub enum Type { }, Integer, List(Box), - Map(Vec<(Identifier, TypeDefinition)>), None, Number, String, + Structure(Identifier), + StructureDefinition(StructureInstantiator), Option(Box), } @@ -92,8 +93,8 @@ impl Type { | (Type::Collection, Type::Collection) | (Type::Collection, Type::List(_)) | (Type::List(_), Type::Collection) - | (Type::Collection, Type::Map(_)) - | (Type::Map(_), Type::Collection) + | (Type::Collection, Type::Structure(_)) + | (Type::Structure(_), Type::Collection) | (Type::Collection, Type::String) | (Type::String, Type::Collection) | (Type::Float, Type::Float) @@ -105,7 +106,7 @@ impl Type { | (Type::Float, Type::Number) | (Type::None, Type::None) | (Type::String, Type::String) => Ok(()), - (Type::Map(left), Type::Map(right)) => { + (Type::Structure(left), Type::Structure(right)) => { if left == right { Ok(()) } else { @@ -181,7 +182,7 @@ impl Type { } impl AbstractTree for Type { - fn from_syntax_node(_source: &str, node: Node, _context: &Map) -> Result { + fn from_syntax_node(_source: &str, node: Node, _context: &Structure) -> Result { Error::expect_syntax_node(_source, "type", node)?; let type_node = node.child(0).unwrap(); @@ -228,32 +229,8 @@ impl AbstractTree for Type { "num" => Type::Number, "none" => Type::None, "str" => Type::String, - "{" => { - let child_count = node.child_count(); - let mut identifier_types = Vec::new(); - let mut identifier = None; - - for index in 1..child_count - 1 { - let child = node.child(index).unwrap(); - - match child.kind() { - "identifier" => { - identifier = - Some(Identifier::from_syntax_node(_source, child, _context)?); - } - "type_definition" => { - if let Some(identifier) = &identifier { - let type_definition = - TypeDefinition::from_syntax_node(_source, child, _context)?; - - identifier_types.push((identifier.clone(), type_definition)); - } - } - _ => {} - } - } - - Type::Map(identifier_types) + "identifier" => { + Type::Structure(Identifier::from_syntax_node(_source, type_node, _context)?) } "option" => { let inner_type_node = node.child(2).unwrap(); @@ -274,11 +251,11 @@ impl AbstractTree for Type { Ok(r#type) } - fn run(&self, _source: &str, _context: &Map) -> Result { + fn run(&self, _source: &str, _context: &Structure) -> Result { Ok(Value::none()) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { Ok(Type::None) } } @@ -309,15 +286,8 @@ impl Display for Type { } Type::Integer => write!(f, "int"), Type::List(item_type) => write!(f, "[{item_type}]"), - Type::Map(identifier_types) => { - write!(f, "{{")?; - - for (identifier, r#type) in identifier_types { - write!(f, "{} {}", identifier.inner(), r#type)?; - } - - write!(f, "}}") - } + Type::Structure(identifier) => write!(f, "{}", identifier.inner()), + Type::StructureDefinition(_) => todo!(), Type::Number => write!(f, "num"), Type::None => write!(f, "none"), Type::String => write!(f, "str"), diff --git a/src/abstract_tree/value_node.rs b/src/abstract_tree/value_node.rs index d04c304..c488e5e 100644 --- a/src/abstract_tree/value_node.rs +++ b/src/abstract_tree/value_node.rs @@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - AbstractTree, BuiltInValue, Error, Expression, Function, Identifier, List, Map, Result, - Statement, Type, TypeDefinition, Value, + AbstractTree, BuiltInValue, Error, Expression, Function, Identifier, List, Result, Structure, + StructureInstantiator, Type, Value, }; #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, PartialOrd, Ord)] @@ -17,12 +17,16 @@ pub enum ValueNode { String(String), List(Vec), Option(Option>), - Map(BTreeMap)>), + Structure { + definition_name: Identifier, + instantiator: StructureInstantiator, + }, + StructureDefinition(StructureInstantiator), BuiltInValue(BuiltInValue), } impl AbstractTree for ValueNode { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "value", node)?; let child = node.child(0).unwrap(); @@ -51,41 +55,32 @@ impl AbstractTree for ValueNode { ValueNode::List(expressions) } - "map" => { - let mut child_nodes = BTreeMap::new(); - let mut current_key = "".to_string(); - let mut current_type = None; + "structure" => { + let identifier_node = child.child(1).unwrap(); + let identifier = Identifier::from_syntax_node(source, identifier_node, context)?; - for index in 0..child.child_count() - 1 { - let child_syntax_node = child.child(index).unwrap(); + let instantiator_node = child.child(2); - if child_syntax_node.kind() == "identifier" { - current_key = - Identifier::from_syntax_node(source, child_syntax_node, context)? - .take_inner(); - current_type = None; - } - - if child_syntax_node.kind() == "type_definition" { - current_type = Some( - TypeDefinition::from_syntax_node(source, child_syntax_node, context)? - .take_inner(), - ); - } - - if child_syntax_node.kind() == "statement" { - let statement = - Statement::from_syntax_node(source, child_syntax_node, context)?; - - if let Some(type_definition) = ¤t_type { - type_definition.check(&statement.expected_type(context)?)?; - } - - child_nodes.insert(current_key.clone(), (statement, current_type.clone())); + if let Some(node) = instantiator_node { + let instantiator = + StructureInstantiator::from_syntax_node(source, node, context)?; + + ValueNode::Structure { + definition_name: identifier, + instantiator, } + } else { + todo!() } + } + "structure_definition" => { + let instantiator_node = child.child(1).unwrap(); - ValueNode::Map(child_nodes) + ValueNode::StructureDefinition(StructureInstantiator::from_syntax_node( + source, + instantiator_node, + context, + )?) } "option" => { let first_grandchild = child.child(0).unwrap(); @@ -122,7 +117,26 @@ impl AbstractTree for ValueNode { Ok(value_node) } - fn run(&self, source: &str, context: &Map) -> Result { + fn check_type(&self, context: &Structure) -> Result<()> { + match self { + ValueNode::StructureDefinition(instantiator) => { + for (_, (statement_option, type_definition_option)) in instantiator.iter() { + if let (Some(statement), Some(type_definition)) = + (statement_option, type_definition_option) + { + type_definition + .inner() + .check(&statement.expected_type(context)?)?; + } + } + } + _ => {} + } + + Ok(()) + } + + fn run(&self, source: &str, context: &Structure) -> Result { let value = match self { ValueNode::Boolean(value_source) => Value::Boolean(value_source.parse().unwrap()), ValueNode::Float(value_source) => Value::Float(value_source.parse().unwrap()), @@ -149,26 +163,51 @@ impl AbstractTree for ValueNode { Value::Option(option_value) } - ValueNode::Map(key_statement_pairs) => { - let map = Map::new(); + ValueNode::Structure { + definition_name, + instantiator, + } => { + let variables = context.variables()?; + let definition = if let Some((value, _)) = variables.get(definition_name.inner()) { + value.as_structure()?.instantiator() + } else { + return Err(Error::VariableIdentifierNotFound( + definition_name.inner().clone(), + )); + }; + let structure = Structure::new(BTreeMap::new(), definition.clone()); + + for (key, (statement_option, type_definition_option)) in + definition.iter().chain(instantiator.iter()) { - for (key, (statement, r#type)) in key_statement_pairs { - let value = statement.run(source, context)?; + let value = if let Some(statement) = statement_option { + statement.run(source, context)? + } else { + Value::none() + }; - map.set(key.clone(), value, r#type.clone())?; + if let Some(type_definition) = &type_definition_option { + structure.set( + key.to_string(), + value, + Some(type_definition.inner().clone()), + )?; + } else { + structure.set(key.to_string(), value, None)?; } } - Value::Map(map) + Value::Structure(structure) } + ValueNode::StructureDefinition(instantiator) => instantiator.run(source, context)?, ValueNode::BuiltInValue(built_in_value) => built_in_value.run(source, context)?, }; Ok(value) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { let r#type = match self { ValueNode::Boolean(_) => Type::Boolean, ValueNode::Float(_) => Type::Float, @@ -203,17 +242,11 @@ impl AbstractTree for ValueNode { Type::None } } - ValueNode::Map(statements) => { - let mut identifier_types = Vec::new(); - - for (key, (statement, _)) in statements { - identifier_types.push(( - Identifier::new(key.clone()), - TypeDefinition::new(statement.expected_type(context)?), - )); - } - - Type::Map(identifier_types) + ValueNode::Structure { + definition_name, .. + } => Type::Structure(definition_name.clone()), + ValueNode::StructureDefinition(instantiator) => { + Type::StructureDefinition(instantiator.clone()) } ValueNode::BuiltInValue(built_in_value) => built_in_value.expected_type(context)?, }; diff --git a/src/abstract_tree/while.rs b/src/abstract_tree/while.rs index 9828b50..2c3cb39 100644 --- a/src/abstract_tree/while.rs +++ b/src/abstract_tree/while.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, Block, Error, Expression, Map, Result, Type, Value}; +use crate::{AbstractTree, Block, Error, Expression, Result, Structure, Type, Value}; /// Abstract representation of a while loop. /// @@ -13,7 +13,7 @@ pub struct While { } impl AbstractTree for While { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> crate::Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> crate::Result { Error::expect_syntax_node(source, "while", node)?; let expression_node = node.child(1).unwrap(); @@ -25,7 +25,7 @@ impl AbstractTree for While { Ok(While { expression, block }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { while self.expression.run(source, context)?.as_boolean()? { self.block.run(source, context)?; } @@ -33,7 +33,7 @@ impl AbstractTree for While { Ok(Value::none()) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.block.expected_type(context) } } diff --git a/src/abstract_tree/yield.rs b/src/abstract_tree/yield.rs index 02e1036..b69b988 100644 --- a/src/abstract_tree/yield.rs +++ b/src/abstract_tree/yield.rs @@ -2,8 +2,8 @@ use serde::{Deserialize, Serialize}; use tree_sitter::Node; use crate::{ - function_expression::FunctionExpression, AbstractTree, Error, Expression, FunctionCall, Map, - Result, Type, Value, + function_expression::FunctionExpression, AbstractTree, Error, Expression, FunctionCall, Result, + Structure, Type, Value, }; /// Abstract representation of a yield expression. @@ -15,7 +15,7 @@ pub struct Yield { } impl AbstractTree for Yield { - fn from_syntax_node(source: &str, node: Node, context: &Map) -> Result { + fn from_syntax_node(source: &str, node: Node, context: &Structure) -> Result { Error::expect_syntax_node(source, "yield", node)?; let input_node = node.child(0).unwrap(); @@ -44,11 +44,11 @@ impl AbstractTree for Yield { Ok(Yield { call }) } - fn run(&self, source: &str, context: &Map) -> Result { + fn run(&self, source: &str, context: &Structure) -> Result { self.call.run(source, context) } - fn expected_type(&self, context: &Map) -> Result { + fn expected_type(&self, context: &Structure) -> Result { self.call.expected_type(context) } } diff --git a/src/bin/gui/app.rs b/src/bin/gui/app.rs deleted file mode 100644 index 043983e..0000000 --- a/src/bin/gui/app.rs +++ /dev/null @@ -1,227 +0,0 @@ -use std::{fs::read_to_string, path::PathBuf}; - -use dust_lang::{Interpreter, Map, Result, Value}; -use egui::{Align, Color32, Layout, RichText, ScrollArea}; -use egui_extras::{Column, TableBuilder}; -use serde::{Deserialize, Serialize}; - -#[derive(Deserialize, Serialize)] -pub struct App { - path: String, - source: String, - context: Map, - #[serde(skip)] - interpreter: Interpreter, - output: Result, - error: Option, -} - -impl App { - pub fn new(cc: &eframe::CreationContext<'_>, path: PathBuf) -> Self { - fn create_app(path: PathBuf) -> App { - let context = Map::new(); - let mut interpreter = Interpreter::new(context.clone()); - let read_source = read_to_string(&path); - let source = if let Ok(source) = read_source { - source - } else { - String::new() - }; - let output = interpreter.run(&source); - - App { - path: path.to_string_lossy().to_string(), - source, - context, - interpreter, - output, - error: None, - } - } - - cc.egui_ctx.set_zoom_factor(1.2); - - if path.is_file() { - create_app(path) - } else { - if let Some(storage) = cc.storage { - return eframe::get_value(storage, eframe::APP_KEY) - .unwrap_or_else(|| create_app(path)); - } else { - create_app(path) - } - } - } -} - -impl eframe::App for App { - /// Called by the frame work to save state before shutdown. - fn save(&mut self, storage: &mut dyn eframe::Storage) { - eframe::set_value(storage, eframe::APP_KEY, self); - } - - /// Called each time the UI needs repainting, which may be many times per second. - fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { - egui::TopBottomPanel::top("top_panel").show(ctx, |ui| { - egui::menu::bar(ui, |ui| { - if ui.button("Quit").clicked() { - ctx.send_viewport_cmd(egui::ViewportCommand::Close); - } - - ui.add_space(16.0); - - egui::widgets::global_dark_light_mode_buttons(ui); - - ui.with_layout(Layout::right_to_left(Align::Max), |ui| { - egui::warn_if_debug_build(ui); - ui.hyperlink_to("source code", "https://git.jeffa.io/jeff/dust"); - }); - }); - }); - - egui::CentralPanel::default().show(ctx, |ui| { - ui.columns(2, |columns| { - ScrollArea::vertical() - .id_source("source") - .show(&mut columns[0], |ui| { - if let Some(error) = &self.error { - ui.label(RichText::new(error).color(Color32::LIGHT_RED)); - } - - ui.text_edit_singleline(&mut self.path); - ui.code_editor(&mut self.source); - - if ui.button("read").clicked() { - match read_to_string(&self.path) { - Ok(source) => { - self.source = source; - self.error = None; - } - Err(error) => self.error = Some(error.to_string()), - } - } - - if ui.button("run").clicked() { - self.output = self.interpreter.run(&self.source); - } - }); - ScrollArea::vertical() - .id_source("output") - .show(&mut columns[1], |ui| match &self.output { - Ok(value) => display_value(value, ui), - Err(error) => { - ui.label(RichText::new(error.to_string()).color(Color32::LIGHT_RED)); - - display_value(&Value::Map(self.context.clone()), ui); - - match &self.output { - Ok(value) => { - display_value(value, ui); - } - Err(error) => { - ui.label(error.to_string()); - } - } - } - }); - }); - }); - } -} - -fn display_value(value: &Value, ui: &mut egui::Ui) { - match value { - Value::List(list) => { - let table = TableBuilder::new(ui) - .striped(true) - .resizable(true) - .column(Column::auto()) - .column(Column::auto()); - - table - .header(20.0, |mut header| { - header.col(|ui| { - ui.strong("index"); - }); - }) - .body(|mut body| { - for (index, value) in list.items().iter().enumerate() { - body.row(20.0, |mut row| { - row.col(|ui| { - ui.label(index.to_string()); - }); - row.col(|ui| { - display_value(value, ui); - }); - }); - } - }); - } - Value::Map(map) => { - let table = TableBuilder::new(ui) - .striped(true) - .resizable(true) - .column(Column::auto()) - .column(Column::auto()); - - table - .header(20.0, |mut header| { - header.col(|ui| { - ui.strong("key"); - }); - }) - .body(|mut body| { - for (key, (value, _)) in map.variables().unwrap().iter() { - body.row(20.0, |mut row| { - row.col(|ui| { - ui.label(key); - }); - row.col(|ui| { - display_value(value, ui); - }); - }); - } - }); - } - Value::Function(function) => { - ui.label(function.to_string()); - } - Value::String(string) => { - ui.label(RichText::new(string.read().unwrap().as_str()).color(Color32::GREEN)); - } - Value::Float(float) => { - ui.label(float.to_string()); - } - Value::Integer(integer) => { - ui.label(RichText::new(integer.to_string()).color(Color32::BLUE)); - } - Value::Boolean(boolean) => { - ui.label(RichText::new(boolean.to_string()).color(Color32::RED)); - } - Value::Option(option) => match option { - Some(value) => { - let table = TableBuilder::new(ui) - .striped(true) - .resizable(true) - .column(Column::auto()); - - table - .header(20.0, |mut header| { - header.col(|ui| { - ui.strong("some"); - }); - }) - .body(|mut body| { - body.row(20.0, |mut row| { - row.col(|ui| { - display_value(value, ui); - }); - }); - }); - } - None => { - ui.label("none"); - } - }, - } -} diff --git a/src/bin/gui/main.rs b/src/bin/gui/main.rs deleted file mode 100644 index de2ef95..0000000 --- a/src/bin/gui/main.rs +++ /dev/null @@ -1,35 +0,0 @@ -#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] - -use std::path::PathBuf; - -use clap::Parser; - -mod app; - -#[derive(Parser)] -struct Args { - // Path to the file to read. - path: Option, -} - -fn main() -> eframe::Result<()> { - env_logger::init(); - - let path = if let Some(path) = Args::parse().path { - path - } else { - PathBuf::new() - }; - let native_options = eframe::NativeOptions { - viewport: egui::ViewportBuilder::default() - .with_inner_size([400.0, 300.0]) - .with_min_inner_size([300.0, 220.0]), - ..Default::default() - }; - - eframe::run_native( - "Dust GUI", - native_options, - Box::new(|cc| Box::new(app::App::new(cc, path))), - ) -} diff --git a/src/built_in_functions/mod.rs b/src/built_in_functions/mod.rs index a12cdef..42605bc 100644 --- a/src/built_in_functions/mod.rs +++ b/src/built_in_functions/mod.rs @@ -5,7 +5,7 @@ use std::fs::read_to_string; use rand::{random, thread_rng, Rng}; use serde::{Deserialize, Serialize}; -use crate::{Error, Map, Result, Type, Value}; +use crate::{Error, Result, Structure, Type, Value}; pub use string::{string_functions, StringFunction}; @@ -54,7 +54,12 @@ impl BuiltInFunction { } } - pub fn call(&self, arguments: &[Value], _source: &str, _outer_context: &Map) -> Result { + pub fn call( + &self, + arguments: &[Value], + _source: &str, + _outer_context: &Structure, + ) -> Result { match self { BuiltInFunction::AssertEqual => { Error::expect_argument_amount(self.name(), 2, arguments.len())?; @@ -86,7 +91,7 @@ impl BuiltInFunction { let value = arguments.first().unwrap(); let length = if let Ok(list) = value.as_list() { list.items().len() - } else if let Ok(map) = value.as_map() { + } else if let Ok(map) = value.as_structure() { map.variables()?.len() } else if let Ok(str) = value.as_string() { str.chars().count() diff --git a/src/built_in_functions/string.rs b/src/built_in_functions/string.rs index 3efbc2c..2900938 100644 --- a/src/built_in_functions/string.rs +++ b/src/built_in_functions/string.rs @@ -1,7 +1,7 @@ use enum_iterator::{all, Sequence}; use serde::{Deserialize, Serialize}; -use crate::{Error, List, Map, Result, Type, Value}; +use crate::{Error, List, Result, Structure, Type, Value}; pub fn string_functions() -> impl Iterator { all() @@ -168,7 +168,12 @@ impl StringFunction { } } - pub fn call(&self, arguments: &[Value], _source: &str, _outer_context: &Map) -> Result { + pub fn call( + &self, + arguments: &[Value], + _source: &str, + _outer_context: &Structure, + ) -> Result { let value = match self { StringFunction::AsBytes => { Error::expect_argument_amount(self.name(), 1, arguments.len())?; diff --git a/src/error.rs b/src/error.rs index eee5528..074535f 100644 --- a/src/error.rs +++ b/src/error.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use tree_sitter::{LanguageError, Node, Point}; -use crate::{value::Value, FunctionExpression, Type}; +use crate::{value::Value, FunctionExpression, IndexExpression, Type}; use std::{ fmt::{self, Formatter}, @@ -54,6 +54,10 @@ pub enum Error { actual: usize, }, + ExpectedIndexIdentifier { + actual: IndexExpression, + }, + /// An operator was called with the wrong amount of arguments. ExpectedOperatorArgumentAmount { expected: usize, @@ -150,6 +154,14 @@ pub enum Error { actual: Value, }, + ExpectedDefaultValue { + variable_name: String, + }, + + ExpectedStructureDefinition { + actual: Type, + }, + /// A `VariableIdentifier` operation did not find its value in the context. VariableIdentifierNotFound(String), @@ -435,6 +447,11 @@ impl fmt::Display for Error { ExpectedFunctionExpression { actual } => { write!(f, "Expected a function expression but got {actual:?}.") } + ExpectedStructureDefinition { actual } => { + write!(f, "Expected a structure definition but got {actual:?}") + } + ExpectedDefaultValue { variable_name } => write!(f, "No default value was found for the structure field \"{variable_name}\", a value must be provided."), + ExpectedIndexIdentifier { actual } => write!(f, "Expected an identifier but for {actual:?}."), } } } diff --git a/src/interpret.rs b/src/interpret.rs index 2b07ff6..59d9855 100644 --- a/src/interpret.rs +++ b/src/interpret.rs @@ -4,7 +4,7 @@ //! functions or by constructing your own Evaluator. use tree_sitter::{Node, Parser, Tree as TSTree, TreeCursor}; -use crate::{language, AbstractTree, Error, Map, Result, Root, Value}; +use crate::{language, AbstractTree, Error, Result, Root, Structure, Value}; /// Interpret the given source code. /// @@ -18,7 +18,7 @@ use crate::{language, AbstractTree, Error, Map, Result, Root, Value}; /// assert_eq!(interpret("1 + 2 + 3"), Ok(Value::Integer(6))); /// ``` pub fn interpret(source: &str) -> Result { - interpret_with_context(source, Map::new()) + interpret_with_context(source, Structure::default()) } /// Interpret the given source code with the given context. @@ -40,7 +40,7 @@ pub fn interpret(source: &str) -> Result { /// Ok(Value::Integer(10)) /// ); /// ``` -pub fn interpret_with_context(source: &str, context: Map) -> Result { +pub fn interpret_with_context(source: &str, context: Structure) -> Result { let mut interpreter = Interpreter::new(context); let value = interpreter.run(source)?; @@ -50,13 +50,13 @@ pub fn interpret_with_context(source: &str, context: Map) -> Result { /// A source code interpreter for the Dust language. pub struct Interpreter { parser: Parser, - context: Map, + context: Structure, syntax_tree: Option, abstract_tree: Option, } impl Interpreter { - pub fn new(context: Map) -> Self { + pub fn new(context: Structure) -> Self { let mut parser = Parser::new(); parser @@ -133,6 +133,6 @@ impl Interpreter { impl Default for Interpreter { fn default() -> Self { - Interpreter::new(Map::new()) + Interpreter::new(Structure::default()) } } diff --git a/src/lib.rs b/src/lib.rs index 3878990..01db0c7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,7 +8,7 @@ pub use crate::{ built_in_functions::BuiltInFunction, error::*, interpret::*, - value::{function::Function, list::List, map::Map, Value}, + value::{function::Function, list::List, structure::Structure, Value}, }; mod abstract_tree; diff --git a/src/main.rs b/src/main.rs index 4146fd0..1bae120 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ use tree_sitter::Parser as TSParser; use std::{borrow::Cow, fs::read_to_string}; -use dust_lang::{language, Interpreter, Map, Value}; +use dust_lang::{language, Interpreter, Structure, Value}; /// Command-line arguments to be parsed. #[derive(Parser, Debug)] @@ -53,7 +53,7 @@ fn main() { "".to_string() }; - let context = Map::new(); + let context = Structure::default(); if let Some(input) = args.input { context @@ -168,7 +168,7 @@ impl Highlighter for DustReadline { } fn run_cli_shell() { - let context = Map::new(); + let context = Structure::default(); let mut interpreter = Interpreter::new(context); let mut rl: Editor = Editor::new().unwrap(); let mut input = String::new(); diff --git a/src/value/function.rs b/src/value/function.rs index be664ce..397063e 100644 --- a/src/value/function.rs +++ b/src/value/function.rs @@ -3,7 +3,7 @@ use std::fmt::{self, Display, Formatter}; use serde::{Deserialize, Serialize}; use tree_sitter::Node; -use crate::{AbstractTree, BuiltInFunction, FunctionNode, Map, Result, Type, Value}; +use crate::{AbstractTree, BuiltInFunction, FunctionNode, Result, Structure, Type, Value}; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)] pub enum Function { @@ -28,7 +28,7 @@ impl Function { name: Option, arguments: &[Value], source: &str, - outer_context: &Map, + outer_context: &Structure, ) -> Result { match self { Function::BuiltIn(built_in_function) => { @@ -51,24 +51,24 @@ impl Function { } impl AbstractTree for Function { - fn from_syntax_node(_source: &str, _node: Node, _context: &Map) -> Result { + fn from_syntax_node(_source: &str, _node: Node, _context: &Structure) -> Result { let inner_function = FunctionNode::from_syntax_node(_source, _node, _context)?; Ok(Function::ContextDefined(inner_function)) } - fn check_type(&self, _context: &Map) -> Result<()> { + fn check_type(&self, _context: &Structure) -> Result<()> { match self { Function::BuiltIn(_) => Ok(()), Function::ContextDefined(defined_function) => defined_function.check_type(_context), } } - fn run(&self, _source: &str, _context: &Map) -> Result { + fn run(&self, _source: &str, _context: &Structure) -> Result { Ok(Value::Function(self.clone())) } - fn expected_type(&self, _context: &Map) -> Result { + fn expected_type(&self, _context: &Structure) -> Result { match self { Function::BuiltIn(built_in) => Ok(built_in.r#type()), Function::ContextDefined(context_defined) => Ok(context_defined.r#type().clone()), diff --git a/src/value/mod.rs b/src/value/mod.rs index 8863e89..9f5ecf6 100644 --- a/src/value/mod.rs +++ b/src/value/mod.rs @@ -1,7 +1,7 @@ //! Types that represent runtime values. use crate::{ error::{Error, Result}, - Function, Identifier, List, Map, Type, TypeDefinition, + Function, List, Structure, Type, }; use serde::{ @@ -21,7 +21,7 @@ use std::{ pub mod function; pub mod list; -pub mod map; +pub mod structure; /// Dust value representation. /// @@ -31,7 +31,7 @@ pub mod map; #[derive(Debug, Clone)] pub enum Value { List(List), - Map(Map), + Structure(Structure), Function(Function), String(Arc>), Float(f64), @@ -74,17 +74,8 @@ impl Value { Type::List(Box::new(Type::Any)) } } - Value::Map(map) => { - let mut identifier_types = Vec::new(); - - for (key, (value, _)) in map.variables().unwrap().iter() { - identifier_types.push(( - Identifier::new(key.clone()), - TypeDefinition::new(value.r#type()), - )); - } - - Type::Map(identifier_types) + Value::Structure(structure) => { + Type::StructureDefinition(structure.instantiator().clone()) } Value::Function(function) => function.r#type().clone(), Value::String(_) => Type::String, @@ -148,11 +139,11 @@ impl Value { } pub fn is_map(&self) -> bool { - matches!(self, Value::Map(_)) + matches!(self, Value::Structure(_)) } pub fn is_function(&self) -> bool { - matches!(self, Value::Map(_)) + matches!(self, Value::Structure(_)) } /// Borrows the value stored in `self` as `&str`, or returns `Err` if `self` is not a `Value::String`. @@ -238,9 +229,9 @@ impl Value { } /// Borrows the value stored in `self` as `Vec`, or returns `Err` if `self` is not a `Value::Map`. - pub fn as_map(&self) -> Result<&Map> { + pub fn as_structure(&self) -> Result<&Structure> { match self { - Value::Map(map) => Ok(map), + Value::Structure(map) => Ok(map), value => Err(Error::ExpectedMap { actual: value.clone(), }), @@ -441,7 +432,7 @@ impl PartialEq for Value { left.read().unwrap().as_str() == right.read().unwrap().as_str() } (Value::List(left), Value::List(right)) => left == right, - (Value::Map(left), Value::Map(right)) => left == right, + (Value::Structure(left), Value::Structure(right)) => left == right, (Value::Function(left), Value::Function(right)) => left == right, (Value::Option(left), Value::Option(right)) => left == right, _ => false, @@ -480,8 +471,8 @@ impl Ord for Value { (Value::Boolean(_), _) => Ordering::Greater, (Value::List(left), Value::List(right)) => left.cmp(right), (Value::List(_), _) => Ordering::Greater, - (Value::Map(left), Value::Map(right)) => left.cmp(right), - (Value::Map(_), _) => Ordering::Greater, + (Value::Structure(left), Value::Structure(right)) => left.cmp(right), + (Value::Structure(_), _) => Ordering::Greater, (Value::Function(left), Value::Function(right)) => left.cmp(right), (Value::Function(_), _) => Ordering::Greater, (Value::Option(left), Value::Option(right)) => left.cmp(right), @@ -511,7 +502,7 @@ impl Serialize for Value { list.end() } Value::Option(inner) => inner.serialize(serializer), - Value::Map(inner) => inner.serialize(serializer), + Value::Structure(inner) => inner.serialize(serializer), Value::Function(inner) => inner.serialize(serializer), } } @@ -532,7 +523,7 @@ impl Display for Value { } } Value::List(list) => write!(f, "{list}"), - Value::Map(map) => write!(f, "{map}"), + Value::Structure(map) => write!(f, "{map}"), Value::Function(function) => write!(f, "{function}"), } } @@ -852,13 +843,13 @@ impl<'de> Visitor<'de> for ValueVisitor { where M: MapAccess<'de>, { - let map = Map::new(); + let map = Structure::default(); while let Some((key, value)) = access.next_entry::()? { map.set(key, value, None).unwrap(); } - Ok(Value::Map(map)) + Ok(Value::Structure(map)) } fn visit_enum(self, data: A) -> std::result::Result diff --git a/src/value/map.rs b/src/value/structure.rs similarity index 79% rename from src/value/map.rs rename to src/value/structure.rs index 11f69d9..2e2d218 100644 --- a/src/value/map.rs +++ b/src/value/structure.rs @@ -11,25 +11,33 @@ use std::{ sync::{Arc, RwLock, RwLockReadGuard, RwLockWriteGuard}, }; -use crate::{value::Value, Result, Type}; +use crate::{value::Value, Result, StructureInstantiator, Type}; /// A collection dust variables comprised of key-value pairs. /// /// The inner value is a BTreeMap in order to allow VariableMap instances to be sorted and compared /// to one another. #[derive(Clone, Debug)] -pub struct Map { +pub struct Structure { variables: Arc>>, + instantiator: StructureInstantiator, } -impl Map { - /// Creates a new instace. - pub fn new() -> Self { - Map { - variables: Arc::new(RwLock::new(BTreeMap::new())), +impl Structure { + pub fn new( + variables: BTreeMap, + instantiator: StructureInstantiator, + ) -> Self { + Structure { + variables: Arc::new(RwLock::new(variables)), + instantiator, } } + pub fn instantiator(&self) -> &StructureInstantiator { + &self.instantiator + } + pub fn clone_from(other: &Self) -> Result { let mut new_map = BTreeMap::new(); @@ -37,8 +45,9 @@ impl Map { new_map.insert(key.clone(), (value.clone(), r#type.clone())); } - Ok(Map { + Ok(Structure { variables: Arc::new(RwLock::new(new_map)), + instantiator: other.instantiator.clone(), }) } @@ -80,15 +89,18 @@ impl Map { } } -impl Default for Map { +impl Default for Structure { fn default() -> Self { - Self::new() + Structure { + variables: Arc::new(RwLock::new(BTreeMap::new())), + instantiator: StructureInstantiator::new(), + } } } -impl Eq for Map {} +impl Eq for Structure {} -impl PartialEq for Map { +impl PartialEq for Structure { fn eq(&self, other: &Self) -> bool { let left = self.variables.read().unwrap().clone().into_iter(); let right = other.variables.read().unwrap().clone().into_iter(); @@ -97,7 +109,7 @@ impl PartialEq for Map { } } -impl Ord for Map { +impl Ord for Structure { fn cmp(&self, other: &Self) -> Ordering { let left = self.variables.read().unwrap().clone().into_iter(); let right = other.variables.read().unwrap().clone().into_iter(); @@ -106,13 +118,13 @@ impl Ord for Map { } } -impl PartialOrd for Map { +impl PartialOrd for Structure { fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } } -impl Display for Map { +impl Display for Structure { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { writeln!(f, "{{")?; @@ -125,7 +137,7 @@ impl Display for Map { } } -impl Serialize for Map { +impl Serialize for Structure { fn serialize(&self, serializer: S) -> std::result::Result where S: serde::Serializer, @@ -142,7 +154,7 @@ impl Serialize for Map { } struct MapVisitor { - marker: PhantomData Map>, + marker: PhantomData Structure>, } impl MapVisitor { @@ -154,17 +166,17 @@ impl MapVisitor { } impl<'de> Visitor<'de> for MapVisitor { - type Value = Map; + type Value = Structure; fn expecting(&self, formatter: &mut Formatter) -> fmt::Result { formatter.write_str("Any valid whale data.") } - fn visit_map(self, mut access: M) -> std::result::Result + fn visit_map(self, mut access: M) -> std::result::Result where M: MapAccess<'de>, { - let map = Map::new(); + let map = Structure::default(); { while let Some((key, value)) = access.next_entry::()? { @@ -176,7 +188,7 @@ impl<'de> Visitor<'de> for MapVisitor { } } -impl<'de> Deserialize<'de> for Map { +impl<'de> Deserialize<'de> for Structure { fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, diff --git a/tests/interpret.rs b/tests/interpret.rs index 4f863d7..734d02b 100644 --- a/tests/interpret.rs +++ b/tests/interpret.rs @@ -139,37 +139,45 @@ mod value { } #[test] - fn map() { - let map = Map::new(); + fn structure() { + let structure = Structure::default(); - map.set("x".to_string(), Value::Integer(1), None).unwrap(); - map.set("foo".to_string(), Value::string("bar".to_string()), None) + structure + .set("x".to_string(), Value::Integer(1), None) .unwrap(); - - assert_eq!(interpret("{ x = 1, foo = 'bar' }"), Ok(Value::Map(map))); - } - - #[test] - fn map_types() { - let map = Map::new(); - - map.set("x".to_string(), Value::Integer(1), Some(Type::Integer)) + structure + .set("foo".to_string(), Value::string("bar".to_string()), None) .unwrap(); - map.set( - "foo".to_string(), - Value::string("bar".to_string()), - Some(Type::String), - ) - .unwrap(); assert_eq!( - interpret("{ x = 1, foo = 'bar' }"), - Ok(Value::Map(map)) + interpret("{ x = 1, foo = 'bar' }"), + Ok(Value::Structure(structure)) ); } #[test] - fn map_type_errors() { + fn structure_types() { + let structure = Structure::default(); + + structure + .set("x".to_string(), Value::Integer(1), Some(Type::Integer)) + .unwrap(); + structure + .set( + "foo".to_string(), + Value::string("bar".to_string()), + Some(Type::String), + ) + .unwrap(); + + assert_eq!( + interpret("{ x = 1, foo = 'bar' }"), + Ok(Value::Structure(structure)) + ); + } + + #[test] + fn structure_type_errors() { assert!(interpret("{ foo = 'bar' }") .unwrap_err() .is_type_check_error(&Error::TypeCheck { @@ -341,7 +349,7 @@ mod index { } #[test] - fn map_index() { + fn structure_index() { let test = interpret("x = {y = {z = 2}} x:y:z").unwrap(); assert_eq!(Value::Integer(2), test); diff --git a/tree-sitter-dust/corpus/functions.txt b/tree-sitter-dust/corpus/functions.txt index 7980e32..9760a12 100644 --- a/tree-sitter-dust/corpus/functions.txt +++ b/tree-sitter-dust/corpus/functions.txt @@ -151,7 +151,7 @@ Complex Function Call foobar( "hi" 42 - Baz:new() + new Baz ) -------------------------------------------------------------------------------- @@ -169,13 +169,9 @@ foobar( (value (integer))) (expression - (function_call - (function_expression - (index - (index_expression - (identifier)) - (index_expression - (identifier)))))))))) + (value + (structure + (identifier)))))))) ================================================================================ Callback Function Call diff --git a/tree-sitter-dust/corpus/index.txt b/tree-sitter-dust/corpus/index.txt index fc656fb..a152553 100644 --- a/tree-sitter-dust/corpus/index.txt +++ b/tree-sitter-dust/corpus/index.txt @@ -114,3 +114,64 @@ x:(y()):0 (index_expression (value (integer))))))) + +================================================================================ +Structure Definition Index +================================================================================ + +struct { + bar = 1 +}:bar + +-------------------------------------------------------------------------------- + +(root + (statement + (expression + (index + (index_expression + (value + (structure_definition + (structure_instantiator + (identifier) + (statement + (expression + (value + (integer)))))))) + (index_expression + (identifier)))))) + +================================================================================ +Structure Definition Index Function Call +================================================================================ + +struct { + bar = () { 'bar' } +}:bar() + +-------------------------------------------------------------------------------- + +(root + (statement + (expression + (function_call + (function_expression + (index + (index_expression + (value + (structure_definition + (structure_instantiator + (identifier) + (statement + (expression + (value + (function + (type_definition + (type)) + (block + (statement + (expression + (value + (string))))))))))))) + (index_expression + (identifier)))))))) diff --git a/tree-sitter-dust/corpus/structure.txt b/tree-sitter-dust/corpus/structure.txt index d4b1eca..c2d77ff 100644 --- a/tree-sitter-dust/corpus/structure.txt +++ b/tree-sitter-dust/corpus/structure.txt @@ -1,5 +1,5 @@ ================================================================================ -Simple Structure +Simple Structure Definition ================================================================================ struct { answer = 42 } @@ -10,15 +10,16 @@ struct { answer = 42 } (statement (expression (value - (structure - (identifier) - (statement - (expression - (value - (integer))))))))) + (structure_definition + (structure_instantiator + (identifier) + (statement + (expression + (value + (integer)))))))))) ================================================================================ -Structure with Types +Structure Definition with Types ================================================================================ struct { @@ -32,31 +33,32 @@ struct { (statement (expression (value - (structure - (identifier) - (type_definition - (type)) - (statement - (expression - (value - (integer)))) - (identifier) - (type_definition - (type - (type))) - (statement - (expression - (value - (list - (expression - (value - (string))) - (expression - (value - (string)))))))))))) + (structure_definition + (structure_instantiator + (identifier) + (type_definition + (type)) + (statement + (expression + (value + (integer)))) + (identifier) + (type_definition + (type + (type))) + (statement + (expression + (value + (list + (expression + (value + (string))) + (expression + (value + (string))))))))))))) ================================================================================ -Nested Structures +Nested Structure Definition ================================================================================ struct { @@ -66,16 +68,98 @@ struct { -------------------------------------------------------------------------------- +(root + (statement + (expression + (value + (structure_definition + (structure_instantiator + (identifier) + (type_definition + (type + (identifier))) + (identifier) + (type_definition + (type + (identifier))))))))) + +================================================================================ +Simple Structure +================================================================================ + +new Foo + +-------------------------------------------------------------------------------- + (root (statement (expression (value (structure - (identifier) - (type_definition - (type - (identifier))) - (identifier) - (type_definition - (type - (identifier)))))))) + (identifier)))))) + +================================================================================ +Complex Structure +================================================================================ + +User = struct { + id = random:integer() + email + name = none +} + +bob = new User { + email = "bob@example.come" +} + +-------------------------------------------------------------------------------- + +(root + (statement + (assignment + (identifier) + (assignment_operator) + (statement + (expression + (value + (structure_definition + (structure_instantiator + (identifier) + (type_definition + (type)) + (statement + (expression + (function_call + (function_expression + (index + (index_expression + (value + (built_in_value))) + (index_expression + (identifier))))))) + (identifier) + (type_definition + (type)) + (identifier) + (type_definition + (type + (type))) + (statement + (expression + (value + (option))))))))))) + (statement + (assignment + (identifier) + (assignment_operator) + (statement + (expression + (value + (structure + (identifier) + (structure_instantiator + (identifier) + (statement + (expression + (value + (string)))))))))))) diff --git a/tree-sitter-dust/grammar.js b/tree-sitter-dust/grammar.js index 5b08b02..73ffcc3 100644 --- a/tree-sitter-dust/grammar.js +++ b/tree-sitter-dust/grammar.js @@ -82,6 +82,7 @@ module.exports = grammar({ $.boolean, $.list, $.structure, + $.structure_definition, $.option, $.built_in_value, ), @@ -167,16 +168,37 @@ module.exports = grammar({ ']', ), - structure: $ => + structure_definition: $ => seq( 'struct', + $.structure_instantiator, + ), + + structure: $ => + prec.right( + seq( + 'new', + $.identifier, + optional( + $.structure_instantiator, + ), + ), + ), + + structure_instantiator: $ => + seq( '{', repeat1( seq( $.identifier, - optional($.type_definition), - optional( + choice( + $.type_definition, seq('=', $.statement), + seq( + $.type_definition, + '=', + $.statement, + ), ), optional(','), ), diff --git a/tree-sitter-dust/src/grammar.json b/tree-sitter-dust/src/grammar.json index a035338..058e152 100644 --- a/tree-sitter-dust/src/grammar.json +++ b/tree-sitter-dust/src/grammar.json @@ -237,6 +237,10 @@ "type": "SYMBOL", "name": "structure" }, + { + "type": "SYMBOL", + "name": "structure_definition" + }, { "type": "SYMBOL", "name": "option" @@ -501,13 +505,51 @@ } ] }, - "structure": { + "structure_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "struct" }, + { + "type": "SYMBOL", + "name": "structure_instantiator" + } + ] + }, + "structure": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "new" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "structure_instantiator" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "structure_instantiator": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -528,14 +570,6 @@ "type": "SYMBOL", "name": "type_definition" }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ { "type": "SEQ", "members": [ @@ -550,7 +584,21 @@ ] }, { - "type": "BLANK" + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type_definition" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "statement" + } + ] } ] }, diff --git a/tree-sitter-dust/src/node-types.json b/tree-sitter-dust/src/node-types.json index ca654ab..47d3577 100644 --- a/tree-sitter-dust/src/node-types.json +++ b/tree-sitter-dust/src/node-types.json @@ -514,6 +514,40 @@ "type": "structure", "named": true, "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "structure_instantiator", + "named": true + } + ] + } + }, + { + "type": "structure_definition", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "structure_instantiator", + "named": true + } + ] + } + }, + { + "type": "structure_instantiator", + "named": true, + "fields": {}, "children": { "multiple": true, "required": true, @@ -614,6 +648,10 @@ { "type": "structure", "named": true + }, + { + "type": "structure_definition", + "named": true } ] } @@ -848,6 +886,10 @@ "type": "match", "named": false }, + { + "type": "new", + "named": false + }, { "type": "none", "named": false @@ -882,11 +924,11 @@ }, { "type": "string", - "named": true + "named": false }, { "type": "string", - "named": false + "named": true }, { "type": "struct", diff --git a/tree-sitter-dust/src/parser.c b/tree-sitter-dust/src/parser.c index 5274899..24131b0 100644 --- a/tree-sitter-dust/src/parser.c +++ b/tree-sitter-dust/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 447 +#define STATE_COUNT 458 #define LARGE_STATE_COUNT 39 -#define SYMBOL_COUNT 109 +#define SYMBOL_COUNT 112 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 66 +#define TOKEN_COUNT 67 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 6 @@ -34,97 +34,100 @@ enum { anon_sym_LBRACK = 15, anon_sym_RBRACK = 16, anon_sym_struct = 17, - anon_sym_EQ = 18, - anon_sym_none = 19, - anon_sym_some = 20, - anon_sym_COLON = 21, - anon_sym_DOT_DOT = 22, - anon_sym_PLUS = 23, - anon_sym_DASH = 24, - anon_sym_STAR = 25, - anon_sym_SLASH = 26, - anon_sym_PERCENT = 27, - anon_sym_EQ_EQ = 28, - anon_sym_BANG_EQ = 29, - anon_sym_AMP_AMP = 30, - anon_sym_PIPE_PIPE = 31, - anon_sym_GT = 32, - anon_sym_LT = 33, - anon_sym_GT_EQ = 34, - anon_sym_LT_EQ = 35, - anon_sym_PLUS_EQ = 36, - anon_sym_DASH_EQ = 37, - anon_sym_if = 38, - anon_sym_elseif = 39, - anon_sym_else = 40, - anon_sym_match = 41, - anon_sym_EQ_GT = 42, - anon_sym_while = 43, - anon_sym_for = 44, - anon_sym_asyncfor = 45, - anon_sym_in = 46, - anon_sym_return = 47, - anon_sym_any = 48, - anon_sym_bool = 49, - anon_sym_collection = 50, - anon_sym_float = 51, - anon_sym_int = 52, - anon_sym_num = 53, - anon_sym_str = 54, - anon_sym_DASH_GT = 55, - anon_sym_option = 56, - anon_sym_args = 57, - anon_sym_assert_equal = 58, - anon_sym_env = 59, - anon_sym_fs = 60, - anon_sym_json = 61, - anon_sym_length = 62, - anon_sym_output = 63, - anon_sym_random = 64, - anon_sym_string = 65, - sym_root = 66, - sym_statement = 67, - sym_expression = 68, - sym__expression_kind = 69, - aux_sym__expression_list = 70, - sym_block = 71, - sym_value = 72, - sym_boolean = 73, - sym_list = 74, - sym_structure = 75, - sym_option = 76, - sym_index = 77, - sym_index_expression = 78, - sym_math = 79, - sym_math_operator = 80, - sym_logic = 81, - sym_logic_operator = 82, - sym_assignment = 83, - sym_index_assignment = 84, - sym_assignment_operator = 85, - sym_if_else = 86, - sym_if = 87, - sym_else_if = 88, - sym_else = 89, - sym_match = 90, - sym_while = 91, - sym_for = 92, - sym_return = 93, - sym_type_definition = 94, - sym_type = 95, - sym_function = 96, - sym_function_expression = 97, - sym__function_expression_kind = 98, - sym_function_call = 99, - sym_yield = 100, - sym_built_in_value = 101, - aux_sym_root_repeat1 = 102, - aux_sym_list_repeat1 = 103, - aux_sym_structure_repeat1 = 104, - aux_sym_if_else_repeat1 = 105, - aux_sym_match_repeat1 = 106, - aux_sym_type_repeat1 = 107, - aux_sym_function_repeat1 = 108, + anon_sym_new = 18, + anon_sym_EQ = 19, + anon_sym_none = 20, + anon_sym_some = 21, + anon_sym_COLON = 22, + anon_sym_DOT_DOT = 23, + anon_sym_PLUS = 24, + anon_sym_DASH = 25, + anon_sym_STAR = 26, + anon_sym_SLASH = 27, + anon_sym_PERCENT = 28, + anon_sym_EQ_EQ = 29, + anon_sym_BANG_EQ = 30, + anon_sym_AMP_AMP = 31, + anon_sym_PIPE_PIPE = 32, + anon_sym_GT = 33, + anon_sym_LT = 34, + anon_sym_GT_EQ = 35, + anon_sym_LT_EQ = 36, + anon_sym_PLUS_EQ = 37, + anon_sym_DASH_EQ = 38, + anon_sym_if = 39, + anon_sym_elseif = 40, + anon_sym_else = 41, + anon_sym_match = 42, + anon_sym_EQ_GT = 43, + anon_sym_while = 44, + anon_sym_for = 45, + anon_sym_asyncfor = 46, + anon_sym_in = 47, + anon_sym_return = 48, + anon_sym_any = 49, + anon_sym_bool = 50, + anon_sym_collection = 51, + anon_sym_float = 52, + anon_sym_int = 53, + anon_sym_num = 54, + anon_sym_str = 55, + anon_sym_DASH_GT = 56, + anon_sym_option = 57, + anon_sym_args = 58, + anon_sym_assert_equal = 59, + anon_sym_env = 60, + anon_sym_fs = 61, + anon_sym_json = 62, + anon_sym_length = 63, + anon_sym_output = 64, + anon_sym_random = 65, + anon_sym_string = 66, + sym_root = 67, + sym_statement = 68, + sym_expression = 69, + sym__expression_kind = 70, + aux_sym__expression_list = 71, + sym_block = 72, + sym_value = 73, + sym_boolean = 74, + sym_list = 75, + sym_structure_definition = 76, + sym_structure = 77, + sym_structure_instantiator = 78, + sym_option = 79, + sym_index = 80, + sym_index_expression = 81, + sym_math = 82, + sym_math_operator = 83, + sym_logic = 84, + sym_logic_operator = 85, + sym_assignment = 86, + sym_index_assignment = 87, + sym_assignment_operator = 88, + sym_if_else = 89, + sym_if = 90, + sym_else_if = 91, + sym_else = 92, + sym_match = 93, + sym_while = 94, + sym_for = 95, + sym_return = 96, + sym_type_definition = 97, + sym_type = 98, + sym_function = 99, + sym_function_expression = 100, + sym__function_expression_kind = 101, + sym_function_call = 102, + sym_yield = 103, + sym_built_in_value = 104, + aux_sym_root_repeat1 = 105, + aux_sym_list_repeat1 = 106, + aux_sym_structure_instantiator_repeat1 = 107, + aux_sym_if_else_repeat1 = 108, + aux_sym_match_repeat1 = 109, + aux_sym_type_repeat1 = 110, + aux_sym_function_repeat1 = 111, }; static const char * const ts_symbol_names[] = { @@ -146,6 +149,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_struct] = "struct", + [anon_sym_new] = "new", [anon_sym_EQ] = "=", [anon_sym_none] = "none", [anon_sym_some] = "some", @@ -203,7 +207,9 @@ static const char * const ts_symbol_names[] = { [sym_value] = "value", [sym_boolean] = "boolean", [sym_list] = "list", + [sym_structure_definition] = "structure_definition", [sym_structure] = "structure", + [sym_structure_instantiator] = "structure_instantiator", [sym_option] = "option", [sym_index] = "index", [sym_index_expression] = "index_expression", @@ -232,7 +238,7 @@ static const char * const ts_symbol_names[] = { [sym_built_in_value] = "built_in_value", [aux_sym_root_repeat1] = "root_repeat1", [aux_sym_list_repeat1] = "list_repeat1", - [aux_sym_structure_repeat1] = "structure_repeat1", + [aux_sym_structure_instantiator_repeat1] = "structure_instantiator_repeat1", [aux_sym_if_else_repeat1] = "if_else_repeat1", [aux_sym_match_repeat1] = "match_repeat1", [aux_sym_type_repeat1] = "type_repeat1", @@ -258,6 +264,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_struct] = anon_sym_struct, + [anon_sym_new] = anon_sym_new, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_none] = anon_sym_none, [anon_sym_some] = anon_sym_some, @@ -315,7 +322,9 @@ static const TSSymbol ts_symbol_map[] = { [sym_value] = sym_value, [sym_boolean] = sym_boolean, [sym_list] = sym_list, + [sym_structure_definition] = sym_structure_definition, [sym_structure] = sym_structure, + [sym_structure_instantiator] = sym_structure_instantiator, [sym_option] = sym_option, [sym_index] = sym_index, [sym_index_expression] = sym_index_expression, @@ -344,7 +353,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_built_in_value] = sym_built_in_value, [aux_sym_root_repeat1] = aux_sym_root_repeat1, [aux_sym_list_repeat1] = aux_sym_list_repeat1, - [aux_sym_structure_repeat1] = aux_sym_structure_repeat1, + [aux_sym_structure_instantiator_repeat1] = aux_sym_structure_instantiator_repeat1, [aux_sym_if_else_repeat1] = aux_sym_if_else_repeat1, [aux_sym_match_repeat1] = aux_sym_match_repeat1, [aux_sym_type_repeat1] = aux_sym_type_repeat1, @@ -424,6 +433,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_new] = { + .visible = true, + .named = false, + }, [anon_sym_EQ] = { .visible = true, .named = false, @@ -652,10 +665,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_structure_definition] = { + .visible = true, + .named = true, + }, [sym_structure] = { .visible = true, .named = true, }, + [sym_structure_instantiator] = { + .visible = true, + .named = true, + }, [sym_option] = { .visible = true, .named = true, @@ -768,7 +789,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_structure_repeat1] = { + [aux_sym_structure_instantiator_repeat1] = { .visible = false, .named = false, }, @@ -803,41 +824,41 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 4, - [5] = 5, - [6] = 3, - [7] = 4, + [4] = 3, + [5] = 3, + [6] = 6, + [7] = 7, [8] = 8, - [9] = 5, - [10] = 8, - [11] = 4, - [12] = 4, - [13] = 3, - [14] = 4, - [15] = 8, - [16] = 16, - [17] = 3, - [18] = 5, - [19] = 5, + [9] = 8, + [10] = 7, + [11] = 6, + [12] = 6, + [13] = 8, + [14] = 7, + [15] = 6, + [16] = 3, + [17] = 7, + [18] = 18, + [19] = 8, [20] = 8, [21] = 3, - [22] = 5, - [23] = 8, + [22] = 7, + [23] = 6, [24] = 24, [25] = 25, [26] = 25, - [27] = 27, + [27] = 24, [28] = 24, [29] = 29, - [30] = 25, - [31] = 29, - [32] = 27, - [33] = 27, - [34] = 29, + [30] = 29, + [31] = 25, + [32] = 32, + [33] = 32, + [34] = 32, [35] = 35, [36] = 36, - [37] = 37, - [38] = 24, + [37] = 29, + [38] = 38, [39] = 39, [40] = 40, [41] = 41, @@ -860,7 +881,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [58] = 58, [59] = 59, [60] = 60, - [61] = 50, + [61] = 61, [62] = 62, [63] = 63, [64] = 64, @@ -868,384 +889,395 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [66] = 66, [67] = 67, [68] = 68, - [69] = 69, + [69] = 53, [70] = 70, [71] = 71, [72] = 72, [73] = 73, - [74] = 39, + [74] = 74, [75] = 75, - [76] = 40, - [77] = 75, - [78] = 54, - [79] = 40, - [80] = 41, - [81] = 39, - [82] = 39, + [76] = 76, + [77] = 77, + [78] = 40, + [79] = 41, + [80] = 77, + [81] = 41, + [82] = 45, [83] = 40, - [84] = 41, - [85] = 62, - [86] = 58, - [87] = 65, - [88] = 52, - [89] = 46, - [90] = 72, - [91] = 54, - [92] = 53, - [93] = 48, - [94] = 59, - [95] = 66, - [96] = 69, - [97] = 70, - [98] = 71, - [99] = 47, - [100] = 68, - [101] = 50, - [102] = 50, - [103] = 55, - [104] = 51, - [105] = 63, - [106] = 49, - [107] = 56, - [108] = 57, - [109] = 64, - [110] = 67, - [111] = 73, - [112] = 45, - [113] = 60, - [114] = 39, - [115] = 40, - [116] = 116, - [117] = 117, - [118] = 54, - [119] = 117, + [84] = 39, + [85] = 70, + [86] = 40, + [87] = 41, + [88] = 39, + [89] = 61, + [90] = 57, + [91] = 53, + [92] = 70, + [93] = 76, + [94] = 73, + [95] = 63, + [96] = 67, + [97] = 62, + [98] = 55, + [99] = 58, + [100] = 49, + [101] = 66, + [102] = 72, + [103] = 74, + [104] = 75, + [105] = 59, + [106] = 50, + [107] = 51, + [108] = 47, + [109] = 56, + [110] = 64, + [111] = 71, + [112] = 53, + [113] = 65, + [114] = 60, + [115] = 68, + [116] = 54, + [117] = 52, + [118] = 46, + [119] = 48, [120] = 120, - [121] = 121, - [122] = 75, + [121] = 40, + [122] = 41, [123] = 123, - [124] = 124, - [125] = 124, - [126] = 124, - [127] = 124, - [128] = 75, + [124] = 123, + [125] = 125, + [126] = 126, + [127] = 127, + [128] = 128, [129] = 129, - [130] = 129, - [131] = 121, + [130] = 130, + [131] = 131, [132] = 132, - [133] = 132, - [134] = 134, - [135] = 123, + [133] = 131, + [134] = 132, + [135] = 128, [136] = 136, - [137] = 137, - [138] = 124, - [139] = 123, - [140] = 134, - [141] = 129, - [142] = 124, - [143] = 120, - [144] = 132, - [145] = 121, - [146] = 134, - [147] = 147, - [148] = 120, - [149] = 147, - [150] = 150, - [151] = 151, - [152] = 152, - [153] = 153, - [154] = 152, - [155] = 155, + [137] = 126, + [138] = 126, + [139] = 139, + [140] = 70, + [141] = 130, + [142] = 125, + [143] = 127, + [144] = 125, + [145] = 130, + [146] = 128, + [147] = 126, + [148] = 136, + [149] = 131, + [150] = 127, + [151] = 126, + [152] = 132, + [153] = 126, + [154] = 77, + [155] = 77, [156] = 156, - [157] = 153, - [158] = 156, - [159] = 153, - [160] = 156, - [161] = 153, + [157] = 157, + [158] = 158, + [159] = 159, + [160] = 157, + [161] = 158, [162] = 162, - [163] = 156, - [164] = 153, - [165] = 165, - [166] = 156, - [167] = 153, - [168] = 152, - [169] = 162, - [170] = 153, - [171] = 165, - [172] = 156, + [163] = 162, + [164] = 164, + [165] = 162, + [166] = 157, + [167] = 158, + [168] = 157, + [169] = 158, + [170] = 157, + [171] = 158, + [172] = 159, [173] = 173, - [174] = 156, - [175] = 173, - [176] = 156, - [177] = 153, - [178] = 156, - [179] = 153, - [180] = 152, - [181] = 156, - [182] = 155, - [183] = 183, - [184] = 152, - [185] = 153, - [186] = 156, - [187] = 187, - [188] = 188, - [189] = 152, - [190] = 153, - [191] = 162, - [192] = 165, - [193] = 152, - [194] = 156, - [195] = 183, - [196] = 152, - [197] = 153, - [198] = 155, - [199] = 183, - [200] = 162, - [201] = 152, - [202] = 152, - [203] = 152, - [204] = 188, - [205] = 187, - [206] = 206, - [207] = 207, - [208] = 208, - [209] = 53, - [210] = 210, - [211] = 67, - [212] = 73, + [174] = 162, + [175] = 175, + [176] = 162, + [177] = 177, + [178] = 178, + [179] = 157, + [180] = 180, + [181] = 162, + [182] = 162, + [183] = 158, + [184] = 162, + [185] = 185, + [186] = 157, + [187] = 158, + [188] = 162, + [189] = 158, + [190] = 157, + [191] = 159, + [192] = 162, + [193] = 156, + [194] = 164, + [195] = 178, + [196] = 158, + [197] = 157, + [198] = 178, + [199] = 157, + [200] = 180, + [201] = 177, + [202] = 158, + [203] = 177, + [204] = 158, + [205] = 157, + [206] = 175, + [207] = 156, + [208] = 157, + [209] = 158, + [210] = 178, + [211] = 162, + [212] = 212, [213] = 213, [214] = 214, - [215] = 215, + [215] = 56, [216] = 216, [217] = 217, - [218] = 218, - [219] = 219, + [218] = 72, + [219] = 58, [220] = 220, [221] = 221, [222] = 222, [223] = 223, - [224] = 223, + [224] = 224, [225] = 225, [226] = 226, - [227] = 39, + [227] = 227, [228] = 228, - [229] = 40, - [230] = 41, - [231] = 228, - [232] = 206, - [233] = 207, - [234] = 228, - [235] = 228, - [236] = 228, - [237] = 228, - [238] = 228, - [239] = 54, - [240] = 65, - [241] = 62, - [242] = 66, - [243] = 208, - [244] = 73, - [245] = 59, - [246] = 47, - [247] = 46, - [248] = 41, - [249] = 64, - [250] = 48, - [251] = 67, - [252] = 53, - [253] = 39, - [254] = 69, - [255] = 57, + [229] = 229, + [230] = 228, + [231] = 231, + [232] = 232, + [233] = 233, + [234] = 233, + [235] = 233, + [236] = 233, + [237] = 233, + [238] = 233, + [239] = 233, + [240] = 212, + [241] = 213, + [242] = 39, + [243] = 214, + [244] = 45, + [245] = 40, + [246] = 41, + [247] = 247, + [248] = 59, + [249] = 56, + [250] = 40, + [251] = 61, + [252] = 68, + [253] = 71, + [254] = 54, + [255] = 51, [256] = 72, - [257] = 56, - [258] = 68, - [259] = 58, - [260] = 52, - [261] = 261, - [262] = 40, - [263] = 49, - [264] = 50, - [265] = 63, - [266] = 51, - [267] = 70, - [268] = 55, - [269] = 71, - [270] = 50, - [271] = 73, - [272] = 67, - [273] = 210, - [274] = 213, - [275] = 53, - [276] = 45, - [277] = 60, - [278] = 223, - [279] = 214, - [280] = 223, - [281] = 218, - [282] = 216, - [283] = 215, - [284] = 54, - [285] = 217, - [286] = 221, - [287] = 222, - [288] = 226, - [289] = 225, - [290] = 220, - [291] = 219, - [292] = 39, - [293] = 40, - [294] = 294, - [295] = 295, - [296] = 296, - [297] = 297, - [298] = 298, - [299] = 41, - [300] = 75, + [257] = 65, + [258] = 57, + [259] = 52, + [260] = 47, + [261] = 58, + [262] = 64, + [263] = 75, + [264] = 74, + [265] = 73, + [266] = 60, + [267] = 41, + [268] = 49, + [269] = 50, + [270] = 63, + [271] = 66, + [272] = 39, + [273] = 55, + [274] = 53, + [275] = 62, + [276] = 70, + [277] = 76, + [278] = 67, + [279] = 58, + [280] = 72, + [281] = 53, + [282] = 56, + [283] = 216, + [284] = 217, + [285] = 220, + [286] = 227, + [287] = 232, + [288] = 225, + [289] = 231, + [290] = 223, + [291] = 228, + [292] = 226, + [293] = 224, + [294] = 229, + [295] = 228, + [296] = 221, + [297] = 46, + [298] = 222, + [299] = 70, + [300] = 48, [301] = 301, - [302] = 39, + [302] = 41, [303] = 40, - [304] = 75, + [304] = 304, [305] = 305, - [306] = 39, - [307] = 40, + [306] = 306, + [307] = 307, [308] = 308, - [309] = 309, - [310] = 41, - [311] = 305, - [312] = 305, - [313] = 313, - [314] = 308, - [315] = 313, - [316] = 309, - [317] = 308, - [318] = 54, + [309] = 41, + [310] = 40, + [311] = 39, + [312] = 77, + [313] = 77, + [314] = 314, + [315] = 41, + [316] = 316, + [317] = 316, + [318] = 318, [319] = 319, - [320] = 320, - [321] = 321, - [322] = 59, - [323] = 50, - [324] = 324, - [325] = 40, - [326] = 326, - [327] = 39, + [320] = 314, + [321] = 39, + [322] = 319, + [323] = 318, + [324] = 318, + [325] = 314, + [326] = 40, + [327] = 53, [328] = 328, [329] = 329, - [330] = 330, - [331] = 329, - [332] = 330, - [333] = 330, + [330] = 63, + [331] = 331, + [332] = 70, + [333] = 40, [334] = 334, [335] = 335, - [336] = 336, + [336] = 335, [337] = 337, - [338] = 336, - [339] = 337, - [340] = 337, - [341] = 337, - [342] = 342, - [343] = 337, - [344] = 337, - [345] = 336, - [346] = 337, - [347] = 337, - [348] = 348, - [349] = 349, - [350] = 337, - [351] = 337, - [352] = 336, - [353] = 337, - [354] = 337, - [355] = 355, - [356] = 356, - [357] = 355, - [358] = 355, - [359] = 359, - [360] = 360, + [338] = 338, + [339] = 41, + [340] = 340, + [341] = 341, + [342] = 341, + [343] = 343, + [344] = 341, + [345] = 345, + [346] = 345, + [347] = 347, + [348] = 347, + [349] = 347, + [350] = 350, + [351] = 345, + [352] = 345, + [353] = 345, + [354] = 345, + [355] = 347, + [356] = 345, + [357] = 357, + [358] = 345, + [359] = 345, + [360] = 345, [361] = 361, - [362] = 362, - [363] = 363, + [362] = 345, + [363] = 345, [364] = 364, [365] = 365, - [366] = 206, - [367] = 207, + [366] = 364, + [367] = 364, [368] = 368, [369] = 369, - [370] = 369, - [371] = 369, + [370] = 370, + [371] = 371, [372] = 372, [373] = 373, [374] = 374, - [375] = 375, - [376] = 376, + [375] = 212, + [376] = 213, [377] = 377, - [378] = 378, - [379] = 379, - [380] = 373, - [381] = 377, - [382] = 375, + [378] = 377, + [379] = 377, + [380] = 380, + [381] = 381, + [382] = 382, [383] = 383, - [384] = 373, - [385] = 379, - [386] = 375, + [384] = 384, + [385] = 385, + [386] = 382, [387] = 387, - [388] = 388, - [389] = 374, - [390] = 374, - [391] = 379, - [392] = 377, - [393] = 393, - [394] = 394, + [388] = 383, + [389] = 389, + [390] = 390, + [391] = 383, + [392] = 384, + [393] = 384, + [394] = 381, [395] = 395, - [396] = 394, - [397] = 393, - [398] = 398, - [399] = 399, - [400] = 394, - [401] = 401, + [396] = 382, + [397] = 397, + [398] = 381, + [399] = 389, + [400] = 400, + [401] = 389, [402] = 402, - [403] = 393, - [404] = 398, + [403] = 403, + [404] = 404, [405] = 405, [406] = 406, - [407] = 402, - [408] = 402, + [407] = 407, + [408] = 408, [409] = 409, - [410] = 398, + [410] = 403, [411] = 411, - [412] = 412, + [412] = 408, [413] = 413, - [414] = 414, - [415] = 412, - [416] = 416, - [417] = 417, - [418] = 417, - [419] = 419, + [414] = 408, + [415] = 403, + [416] = 409, + [417] = 411, + [418] = 407, + [419] = 409, [420] = 420, - [421] = 416, - [422] = 412, - [423] = 417, + [421] = 407, + [422] = 411, + [423] = 423, [424] = 424, - [425] = 417, + [425] = 425, [426] = 426, - [427] = 413, - [428] = 428, - [429] = 428, + [427] = 427, + [428] = 425, + [429] = 429, [430] = 430, - [431] = 430, - [432] = 432, - [433] = 412, - [434] = 416, - [435] = 412, - [436] = 412, - [437] = 417, - [438] = 438, + [431] = 431, + [432] = 426, + [433] = 426, + [434] = 434, + [435] = 426, + [436] = 425, + [437] = 437, + [438] = 425, [439] = 439, - [440] = 413, - [441] = 428, + [440] = 427, + [441] = 426, [442] = 442, - [443] = 430, - [444] = 412, - [445] = 424, - [446] = 424, + [443] = 437, + [444] = 442, + [445] = 427, + [446] = 446, + [447] = 424, + [448] = 448, + [449] = 425, + [450] = 450, + [451] = 426, + [452] = 424, + [453] = 442, + [454] = 437, + [455] = 426, + [456] = 430, + [457] = 430, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1827,57 +1859,58 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'a') ADVANCE(31); END_STATE(); case 10: - if (lookahead == 'o') ADVANCE(32); - if (lookahead == 'u') ADVANCE(33); + if (lookahead == 'e') ADVANCE(32); + if (lookahead == 'o') ADVANCE(33); + if (lookahead == 'u') ADVANCE(34); END_STATE(); case 11: - if (lookahead == 'p') ADVANCE(34); - if (lookahead == 'u') ADVANCE(35); + if (lookahead == 'p') ADVANCE(35); + if (lookahead == 'u') ADVANCE(36); END_STATE(); case 12: - if (lookahead == 'a') ADVANCE(36); - if (lookahead == 'e') ADVANCE(37); + if (lookahead == 'a') ADVANCE(37); + if (lookahead == 'e') ADVANCE(38); END_STATE(); case 13: - if (lookahead == 'o') ADVANCE(38); - if (lookahead == 't') ADVANCE(39); + if (lookahead == 'o') ADVANCE(39); + if (lookahead == 't') ADVANCE(40); END_STATE(); case 14: - if (lookahead == 'r') ADVANCE(40); + if (lookahead == 'r') ADVANCE(41); END_STATE(); case 15: - if (lookahead == 'h') ADVANCE(41); + if (lookahead == 'h') ADVANCE(42); END_STATE(); case 16: - if (lookahead == 'y') ADVANCE(42); + if (lookahead == 'y') ADVANCE(43); END_STATE(); case 17: - if (lookahead == 'g') ADVANCE(43); + if (lookahead == 'g') ADVANCE(44); END_STATE(); case 18: - if (lookahead == 's') ADVANCE(44); - if (lookahead == 'y') ADVANCE(45); + if (lookahead == 's') ADVANCE(45); + if (lookahead == 'y') ADVANCE(46); END_STATE(); case 19: - if (lookahead == 'o') ADVANCE(46); + if (lookahead == 'o') ADVANCE(47); END_STATE(); case 20: - if (lookahead == 'l') ADVANCE(47); + if (lookahead == 'l') ADVANCE(48); END_STATE(); case 21: - if (lookahead == 's') ADVANCE(48); + if (lookahead == 's') ADVANCE(49); END_STATE(); case 22: - if (lookahead == 'v') ADVANCE(49); + if (lookahead == 'v') ADVANCE(50); END_STATE(); case 23: - if (lookahead == 'l') ADVANCE(50); + if (lookahead == 'l') ADVANCE(51); END_STATE(); case 24: - if (lookahead == 'o') ADVANCE(51); + if (lookahead == 'o') ADVANCE(52); END_STATE(); case 25: - if (lookahead == 'r') ADVANCE(52); + if (lookahead == 'r') ADVANCE(53); END_STATE(); case 26: ACCEPT_TOKEN(anon_sym_fs); @@ -1887,284 +1920,290 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 't') ADVANCE(53); + if (lookahead == 't') ADVANCE(54); END_STATE(); case 29: - if (lookahead == 'o') ADVANCE(54); + if (lookahead == 'o') ADVANCE(55); END_STATE(); case 30: - if (lookahead == 'n') ADVANCE(55); + if (lookahead == 'n') ADVANCE(56); END_STATE(); case 31: - if (lookahead == 't') ADVANCE(56); + if (lookahead == 't') ADVANCE(57); END_STATE(); case 32: - if (lookahead == 'n') ADVANCE(57); + if (lookahead == 'w') ADVANCE(58); END_STATE(); case 33: - if (lookahead == 'm') ADVANCE(58); + if (lookahead == 'n') ADVANCE(59); END_STATE(); case 34: - if (lookahead == 't') ADVANCE(59); + if (lookahead == 'm') ADVANCE(60); END_STATE(); case 35: - if (lookahead == 't') ADVANCE(60); + if (lookahead == 't') ADVANCE(61); END_STATE(); case 36: - if (lookahead == 'n') ADVANCE(61); - END_STATE(); - case 37: if (lookahead == 't') ADVANCE(62); END_STATE(); + case 37: + if (lookahead == 'n') ADVANCE(63); + END_STATE(); case 38: - if (lookahead == 'm') ADVANCE(63); + if (lookahead == 't') ADVANCE(64); END_STATE(); case 39: - if (lookahead == 'r') ADVANCE(64); + if (lookahead == 'm') ADVANCE(65); END_STATE(); case 40: - if (lookahead == 'u') ADVANCE(65); + if (lookahead == 'r') ADVANCE(66); END_STATE(); case 41: - if (lookahead == 'i') ADVANCE(66); + if (lookahead == 'u') ADVANCE(67); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_any); + if (lookahead == 'i') ADVANCE(68); END_STATE(); case 43: - if (lookahead == 's') ADVANCE(67); + ACCEPT_TOKEN(anon_sym_any); END_STATE(); case 44: - if (lookahead == 'e') ADVANCE(68); + if (lookahead == 's') ADVANCE(69); END_STATE(); case 45: - if (lookahead == 'n') ADVANCE(69); + if (lookahead == 'e') ADVANCE(70); END_STATE(); case 46: - if (lookahead == 'l') ADVANCE(70); + if (lookahead == 'n') ADVANCE(71); END_STATE(); case 47: - if (lookahead == 'l') ADVANCE(71); + if (lookahead == 'l') ADVANCE(72); END_STATE(); case 48: - if (lookahead == 'e') ADVANCE(72); + if (lookahead == 'l') ADVANCE(73); END_STATE(); case 49: - ACCEPT_TOKEN(anon_sym_env); + if (lookahead == 'e') ADVANCE(74); END_STATE(); case 50: - if (lookahead == 's') ADVANCE(73); + ACCEPT_TOKEN(anon_sym_env); END_STATE(); case 51: - if (lookahead == 'a') ADVANCE(74); + if (lookahead == 's') ADVANCE(75); END_STATE(); case 52: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(76); END_STATE(); case 53: - ACCEPT_TOKEN(anon_sym_int); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 54: - if (lookahead == 'n') ADVANCE(75); + ACCEPT_TOKEN(anon_sym_int); END_STATE(); case 55: - if (lookahead == 'g') ADVANCE(76); + if (lookahead == 'n') ADVANCE(77); END_STATE(); case 56: - if (lookahead == 'c') ADVANCE(77); + if (lookahead == 'g') ADVANCE(78); END_STATE(); case 57: - if (lookahead == 'e') ADVANCE(78); + if (lookahead == 'c') ADVANCE(79); END_STATE(); case 58: - ACCEPT_TOKEN(anon_sym_num); + ACCEPT_TOKEN(anon_sym_new); END_STATE(); case 59: - if (lookahead == 'i') ADVANCE(79); + if (lookahead == 'e') ADVANCE(80); END_STATE(); case 60: - if (lookahead == 'p') ADVANCE(80); + ACCEPT_TOKEN(anon_sym_num); END_STATE(); case 61: - if (lookahead == 'd') ADVANCE(81); + if (lookahead == 'i') ADVANCE(81); END_STATE(); case 62: - if (lookahead == 'u') ADVANCE(82); + if (lookahead == 'p') ADVANCE(82); END_STATE(); case 63: - if (lookahead == 'e') ADVANCE(83); + if (lookahead == 'd') ADVANCE(83); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_str); - if (lookahead == 'i') ADVANCE(84); - if (lookahead == 'u') ADVANCE(85); + if (lookahead == 'u') ADVANCE(84); END_STATE(); case 65: - if (lookahead == 'e') ADVANCE(86); + if (lookahead == 'e') ADVANCE(85); END_STATE(); case 66: - if (lookahead == 'l') ADVANCE(87); + ACCEPT_TOKEN(anon_sym_str); + if (lookahead == 'i') ADVANCE(86); + if (lookahead == 'u') ADVANCE(87); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_args); + if (lookahead == 'e') ADVANCE(88); END_STATE(); case 68: - if (lookahead == 'r') ADVANCE(88); + if (lookahead == 'l') ADVANCE(89); END_STATE(); case 69: - if (lookahead == 'c') ADVANCE(89); + ACCEPT_TOKEN(anon_sym_args); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_bool); + if (lookahead == 'r') ADVANCE(90); END_STATE(); case 71: - if (lookahead == 'e') ADVANCE(90); + if (lookahead == 'c') ADVANCE(91); END_STATE(); case 72: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_bool); END_STATE(); case 73: - if (lookahead == 'e') ADVANCE(91); + if (lookahead == 'e') ADVANCE(92); END_STATE(); case 74: - if (lookahead == 't') ADVANCE(92); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 75: - ACCEPT_TOKEN(anon_sym_json); + if (lookahead == 'e') ADVANCE(93); END_STATE(); case 76: - if (lookahead == 't') ADVANCE(93); + if (lookahead == 't') ADVANCE(94); END_STATE(); case 77: - if (lookahead == 'h') ADVANCE(94); + ACCEPT_TOKEN(anon_sym_json); END_STATE(); case 78: - ACCEPT_TOKEN(anon_sym_none); + if (lookahead == 't') ADVANCE(95); END_STATE(); case 79: - if (lookahead == 'o') ADVANCE(95); + if (lookahead == 'h') ADVANCE(96); END_STATE(); case 80: - if (lookahead == 'u') ADVANCE(96); + ACCEPT_TOKEN(anon_sym_none); END_STATE(); case 81: if (lookahead == 'o') ADVANCE(97); END_STATE(); case 82: - if (lookahead == 'r') ADVANCE(98); + if (lookahead == 'u') ADVANCE(98); END_STATE(); case 83: - ACCEPT_TOKEN(anon_sym_some); + if (lookahead == 'o') ADVANCE(99); END_STATE(); case 84: - if (lookahead == 'n') ADVANCE(99); + if (lookahead == 'r') ADVANCE(100); END_STATE(); case 85: - if (lookahead == 'c') ADVANCE(100); + ACCEPT_TOKEN(anon_sym_some); END_STATE(); case 86: - ACCEPT_TOKEN(anon_sym_true); + if (lookahead == 'n') ADVANCE(101); END_STATE(); case 87: - if (lookahead == 'e') ADVANCE(101); + if (lookahead == 'c') ADVANCE(102); END_STATE(); case 88: - if (lookahead == 't') ADVANCE(102); + ACCEPT_TOKEN(anon_sym_true); END_STATE(); case 89: - ACCEPT_TOKEN(anon_sym_async); + if (lookahead == 'e') ADVANCE(103); END_STATE(); case 90: - if (lookahead == 'c') ADVANCE(103); + if (lookahead == 't') ADVANCE(104); END_STATE(); case 91: - ACCEPT_TOKEN(anon_sym_false); + ACCEPT_TOKEN(anon_sym_async); END_STATE(); case 92: - ACCEPT_TOKEN(anon_sym_float); + if (lookahead == 'c') ADVANCE(105); END_STATE(); case 93: - if (lookahead == 'h') ADVANCE(104); + ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 94: - ACCEPT_TOKEN(anon_sym_match); + ACCEPT_TOKEN(anon_sym_float); END_STATE(); case 95: - if (lookahead == 'n') ADVANCE(105); + if (lookahead == 'h') ADVANCE(106); END_STATE(); case 96: - if (lookahead == 't') ADVANCE(106); + ACCEPT_TOKEN(anon_sym_match); END_STATE(); case 97: - if (lookahead == 'm') ADVANCE(107); + if (lookahead == 'n') ADVANCE(107); END_STATE(); case 98: - if (lookahead == 'n') ADVANCE(108); + if (lookahead == 't') ADVANCE(108); END_STATE(); case 99: - if (lookahead == 'g') ADVANCE(109); + if (lookahead == 'm') ADVANCE(109); END_STATE(); case 100: - if (lookahead == 't') ADVANCE(110); + if (lookahead == 'n') ADVANCE(110); END_STATE(); case 101: - ACCEPT_TOKEN(anon_sym_while); + if (lookahead == 'g') ADVANCE(111); END_STATE(); case 102: - if (lookahead == '_') ADVANCE(111); - END_STATE(); - case 103: if (lookahead == 't') ADVANCE(112); END_STATE(); + case 103: + ACCEPT_TOKEN(anon_sym_while); + END_STATE(); case 104: - ACCEPT_TOKEN(anon_sym_length); + if (lookahead == '_') ADVANCE(113); END_STATE(); case 105: - ACCEPT_TOKEN(anon_sym_option); + if (lookahead == 't') ADVANCE(114); END_STATE(); case 106: - ACCEPT_TOKEN(anon_sym_output); + ACCEPT_TOKEN(anon_sym_length); END_STATE(); case 107: - ACCEPT_TOKEN(anon_sym_random); + ACCEPT_TOKEN(anon_sym_option); END_STATE(); case 108: - ACCEPT_TOKEN(anon_sym_return); + ACCEPT_TOKEN(anon_sym_output); END_STATE(); case 109: - ACCEPT_TOKEN(anon_sym_string); + ACCEPT_TOKEN(anon_sym_random); END_STATE(); case 110: - ACCEPT_TOKEN(anon_sym_struct); + ACCEPT_TOKEN(anon_sym_return); END_STATE(); case 111: - if (lookahead == 'e') ADVANCE(113); + ACCEPT_TOKEN(anon_sym_string); END_STATE(); case 112: - if (lookahead == 'i') ADVANCE(114); + ACCEPT_TOKEN(anon_sym_struct); END_STATE(); case 113: - if (lookahead == 'q') ADVANCE(115); + if (lookahead == 'e') ADVANCE(115); END_STATE(); case 114: - if (lookahead == 'o') ADVANCE(116); + if (lookahead == 'i') ADVANCE(116); END_STATE(); case 115: - if (lookahead == 'u') ADVANCE(117); + if (lookahead == 'q') ADVANCE(117); END_STATE(); case 116: - if (lookahead == 'n') ADVANCE(118); + if (lookahead == 'o') ADVANCE(118); END_STATE(); case 117: - if (lookahead == 'a') ADVANCE(119); + if (lookahead == 'u') ADVANCE(119); END_STATE(); case 118: - ACCEPT_TOKEN(anon_sym_collection); + if (lookahead == 'n') ADVANCE(120); END_STATE(); case 119: - if (lookahead == 'l') ADVANCE(120); + if (lookahead == 'a') ADVANCE(121); END_STATE(); case 120: + ACCEPT_TOKEN(anon_sym_collection); + END_STATE(); + case 121: + if (lookahead == 'l') ADVANCE(122); + END_STATE(); + case 122: ACCEPT_TOKEN(anon_sym_assert_equal); END_STATE(); default: @@ -2252,13 +2291,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [76] = {.lex_state = 25}, [77] = {.lex_state = 25}, [78] = {.lex_state = 25}, - [79] = {.lex_state = 1}, - [80] = {.lex_state = 1}, + [79] = {.lex_state = 25}, + [80] = {.lex_state = 25}, [81] = {.lex_state = 1}, [82] = {.lex_state = 1}, [83] = {.lex_state = 1}, [84] = {.lex_state = 1}, - [85] = {.lex_state = 1}, + [85] = {.lex_state = 25}, [86] = {.lex_state = 1}, [87] = {.lex_state = 1}, [88] = {.lex_state = 1}, @@ -2379,20 +2418,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [203] = {.lex_state = 1}, [204] = {.lex_state = 1}, [205] = {.lex_state = 1}, - [206] = {.lex_state = 0}, - [207] = {.lex_state = 0}, - [208] = {.lex_state = 0}, - [209] = {.lex_state = 0}, - [210] = {.lex_state = 0}, - [211] = {.lex_state = 0}, + [206] = {.lex_state = 1}, + [207] = {.lex_state = 1}, + [208] = {.lex_state = 1}, + [209] = {.lex_state = 1}, + [210] = {.lex_state = 1}, + [211] = {.lex_state = 1}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, - [214] = {.lex_state = 25}, - [215] = {.lex_state = 25}, - [216] = {.lex_state = 25}, - [217] = {.lex_state = 25}, - [218] = {.lex_state = 25}, - [219] = {.lex_state = 25}, + [214] = {.lex_state = 0}, + [215] = {.lex_state = 0}, + [216] = {.lex_state = 0}, + [217] = {.lex_state = 0}, + [218] = {.lex_state = 0}, + [219] = {.lex_state = 0}, [220] = {.lex_state = 25}, [221] = {.lex_state = 25}, [222] = {.lex_state = 25}, @@ -2400,27 +2439,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [224] = {.lex_state = 25}, [225] = {.lex_state = 25}, [226] = {.lex_state = 25}, - [227] = {.lex_state = 2}, - [228] = {.lex_state = 1}, - [229] = {.lex_state = 2}, - [230] = {.lex_state = 2}, - [231] = {.lex_state = 1}, - [232] = {.lex_state = 5}, - [233] = {.lex_state = 5}, + [227] = {.lex_state = 25}, + [228] = {.lex_state = 25}, + [229] = {.lex_state = 25}, + [230] = {.lex_state = 25}, + [231] = {.lex_state = 25}, + [232] = {.lex_state = 25}, + [233] = {.lex_state = 1}, [234] = {.lex_state = 1}, [235] = {.lex_state = 1}, [236] = {.lex_state = 1}, [237] = {.lex_state = 1}, [238] = {.lex_state = 1}, - [239] = {.lex_state = 2}, - [240] = {.lex_state = 2}, - [241] = {.lex_state = 2}, + [239] = {.lex_state = 1}, + [240] = {.lex_state = 5}, + [241] = {.lex_state = 5}, [242] = {.lex_state = 2}, [243] = {.lex_state = 5}, [244] = {.lex_state = 2}, [245] = {.lex_state = 2}, [246] = {.lex_state = 2}, - [247] = {.lex_state = 2}, + [247] = {.lex_state = 25}, [248] = {.lex_state = 2}, [249] = {.lex_state = 2}, [250] = {.lex_state = 2}, @@ -2434,7 +2473,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [258] = {.lex_state = 2}, [259] = {.lex_state = 2}, [260] = {.lex_state = 2}, - [261] = {.lex_state = 25}, + [261] = {.lex_state = 2}, [262] = {.lex_state = 2}, [263] = {.lex_state = 2}, [264] = {.lex_state = 2}, @@ -2444,20 +2483,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [268] = {.lex_state = 2}, [269] = {.lex_state = 2}, [270] = {.lex_state = 2}, - [271] = {.lex_state = 5}, - [272] = {.lex_state = 5}, - [273] = {.lex_state = 5}, - [274] = {.lex_state = 5}, - [275] = {.lex_state = 5}, - [276] = {.lex_state = 4}, - [277] = {.lex_state = 4}, - [278] = {.lex_state = 1}, - [279] = {.lex_state = 1}, - [280] = {.lex_state = 1}, - [281] = {.lex_state = 1}, - [282] = {.lex_state = 1}, - [283] = {.lex_state = 1}, - [284] = {.lex_state = 3}, + [271] = {.lex_state = 2}, + [272] = {.lex_state = 2}, + [273] = {.lex_state = 2}, + [274] = {.lex_state = 2}, + [275] = {.lex_state = 2}, + [276] = {.lex_state = 2}, + [277] = {.lex_state = 2}, + [278] = {.lex_state = 2}, + [279] = {.lex_state = 5}, + [280] = {.lex_state = 5}, + [281] = {.lex_state = 2}, + [282] = {.lex_state = 5}, + [283] = {.lex_state = 5}, + [284] = {.lex_state = 5}, [285] = {.lex_state = 1}, [286] = {.lex_state = 1}, [287] = {.lex_state = 1}, @@ -2465,23 +2504,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [289] = {.lex_state = 1}, [290] = {.lex_state = 1}, [291] = {.lex_state = 1}, - [292] = {.lex_state = 3}, - [293] = {.lex_state = 3}, + [292] = {.lex_state = 1}, + [293] = {.lex_state = 1}, [294] = {.lex_state = 1}, [295] = {.lex_state = 1}, [296] = {.lex_state = 1}, - [297] = {.lex_state = 1}, + [297] = {.lex_state = 4}, [298] = {.lex_state = 1}, - [299] = {.lex_state = 2}, - [300] = {.lex_state = 2}, + [299] = {.lex_state = 3}, + [300] = {.lex_state = 4}, [301] = {.lex_state = 1}, - [302] = {.lex_state = 2}, - [303] = {.lex_state = 2}, - [304] = {.lex_state = 2}, - [305] = {.lex_state = 2}, - [306] = {.lex_state = 2}, - [307] = {.lex_state = 2}, - [308] = {.lex_state = 2}, + [302] = {.lex_state = 3}, + [303] = {.lex_state = 3}, + [304] = {.lex_state = 1}, + [305] = {.lex_state = 1}, + [306] = {.lex_state = 1}, + [307] = {.lex_state = 1}, + [308] = {.lex_state = 1}, [309] = {.lex_state = 2}, [310] = {.lex_state = 2}, [311] = {.lex_state = 2}, @@ -2492,67 +2531,67 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [316] = {.lex_state = 2}, [317] = {.lex_state = 2}, [318] = {.lex_state = 2}, - [319] = {.lex_state = 7}, - [320] = {.lex_state = 7}, + [319] = {.lex_state = 2}, + [320] = {.lex_state = 2}, [321] = {.lex_state = 2}, [322] = {.lex_state = 2}, [323] = {.lex_state = 2}, - [324] = {.lex_state = 7}, + [324] = {.lex_state = 2}, [325] = {.lex_state = 2}, - [326] = {.lex_state = 3}, + [326] = {.lex_state = 2}, [327] = {.lex_state = 2}, [328] = {.lex_state = 7}, [329] = {.lex_state = 2}, [330] = {.lex_state = 2}, - [331] = {.lex_state = 2}, + [331] = {.lex_state = 7}, [332] = {.lex_state = 2}, [333] = {.lex_state = 2}, [334] = {.lex_state = 7}, - [335] = {.lex_state = 7}, + [335] = {.lex_state = 2}, [336] = {.lex_state = 2}, - [337] = {.lex_state = 2}, - [338] = {.lex_state = 2}, + [337] = {.lex_state = 7}, + [338] = {.lex_state = 7}, [339] = {.lex_state = 2}, - [340] = {.lex_state = 2}, + [340] = {.lex_state = 3}, [341] = {.lex_state = 2}, - [342] = {.lex_state = 1}, - [343] = {.lex_state = 2}, + [342] = {.lex_state = 2}, + [343] = {.lex_state = 7}, [344] = {.lex_state = 2}, [345] = {.lex_state = 2}, [346] = {.lex_state = 2}, [347] = {.lex_state = 2}, - [348] = {.lex_state = 1}, - [349] = {.lex_state = 1}, - [350] = {.lex_state = 2}, + [348] = {.lex_state = 2}, + [349] = {.lex_state = 2}, + [350] = {.lex_state = 1}, [351] = {.lex_state = 2}, [352] = {.lex_state = 2}, [353] = {.lex_state = 2}, [354] = {.lex_state = 2}, [355] = {.lex_state = 2}, - [356] = {.lex_state = 1}, - [357] = {.lex_state = 2}, + [356] = {.lex_state = 2}, + [357] = {.lex_state = 1}, [358] = {.lex_state = 2}, - [359] = {.lex_state = 1}, - [360] = {.lex_state = 1}, + [359] = {.lex_state = 2}, + [360] = {.lex_state = 2}, [361] = {.lex_state = 1}, - [362] = {.lex_state = 1}, - [363] = {.lex_state = 1}, - [364] = {.lex_state = 1}, + [362] = {.lex_state = 2}, + [363] = {.lex_state = 2}, + [364] = {.lex_state = 2}, [365] = {.lex_state = 1}, - [366] = {.lex_state = 5}, - [367] = {.lex_state = 5}, + [366] = {.lex_state = 2}, + [367] = {.lex_state = 2}, [368] = {.lex_state = 1}, - [369] = {.lex_state = 25}, - [370] = {.lex_state = 25}, - [371] = {.lex_state = 25}, + [369] = {.lex_state = 1}, + [370] = {.lex_state = 1}, + [371] = {.lex_state = 1}, [372] = {.lex_state = 1}, [373] = {.lex_state = 1}, [374] = {.lex_state = 1}, - [375] = {.lex_state = 1}, - [376] = {.lex_state = 1}, - [377] = {.lex_state = 1}, - [378] = {.lex_state = 1}, - [379] = {.lex_state = 1}, + [375] = {.lex_state = 5}, + [376] = {.lex_state = 5}, + [377] = {.lex_state = 25}, + [378] = {.lex_state = 25}, + [379] = {.lex_state = 25}, [380] = {.lex_state = 1}, [381] = {.lex_state = 1}, [382] = {.lex_state = 1}, @@ -2566,60 +2605,71 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [390] = {.lex_state = 1}, [391] = {.lex_state = 1}, [392] = {.lex_state = 1}, - [393] = {.lex_state = 0}, - [394] = {.lex_state = 0}, + [393] = {.lex_state = 1}, + [394] = {.lex_state = 1}, [395] = {.lex_state = 1}, - [396] = {.lex_state = 0}, - [397] = {.lex_state = 0}, + [396] = {.lex_state = 1}, + [397] = {.lex_state = 25}, [398] = {.lex_state = 1}, [399] = {.lex_state = 1}, - [400] = {.lex_state = 0}, - [401] = {.lex_state = 0}, - [402] = {.lex_state = 0}, - [403] = {.lex_state = 0}, + [400] = {.lex_state = 1}, + [401] = {.lex_state = 1}, + [402] = {.lex_state = 1}, + [403] = {.lex_state = 1}, [404] = {.lex_state = 1}, [405] = {.lex_state = 1}, - [406] = {.lex_state = 1}, + [406] = {.lex_state = 0}, [407] = {.lex_state = 0}, [408] = {.lex_state = 0}, - [409] = {.lex_state = 1}, + [409] = {.lex_state = 0}, [410] = {.lex_state = 1}, [411] = {.lex_state = 0}, [412] = {.lex_state = 0}, [413] = {.lex_state = 0}, [414] = {.lex_state = 0}, - [415] = {.lex_state = 0}, + [415] = {.lex_state = 1}, [416] = {.lex_state = 0}, [417] = {.lex_state = 0}, [418] = {.lex_state = 0}, - [419] = {.lex_state = 5}, - [420] = {.lex_state = 0}, + [419] = {.lex_state = 0}, + [420] = {.lex_state = 1}, [421] = {.lex_state = 0}, [422] = {.lex_state = 0}, [423] = {.lex_state = 0}, - [424] = {.lex_state = 1}, + [424] = {.lex_state = 0}, [425] = {.lex_state = 0}, [426] = {.lex_state = 0}, [427] = {.lex_state = 0}, [428] = {.lex_state = 0}, - [429] = {.lex_state = 0}, + [429] = {.lex_state = 1}, [430] = {.lex_state = 1}, - [431] = {.lex_state = 1}, + [431] = {.lex_state = 0}, [432] = {.lex_state = 0}, [433] = {.lex_state = 0}, [434] = {.lex_state = 0}, [435] = {.lex_state = 0}, [436] = {.lex_state = 0}, - [437] = {.lex_state = 0}, - [438] = {.lex_state = 5}, + [437] = {.lex_state = 1}, + [438] = {.lex_state = 0}, [439] = {.lex_state = 0}, [440] = {.lex_state = 0}, [441] = {.lex_state = 0}, [442] = {.lex_state = 1}, [443] = {.lex_state = 1}, - [444] = {.lex_state = 0}, - [445] = {.lex_state = 1}, - [446] = {.lex_state = 1}, + [444] = {.lex_state = 1}, + [445] = {.lex_state = 0}, + [446] = {.lex_state = 0}, + [447] = {.lex_state = 0}, + [448] = {.lex_state = 5}, + [449] = {.lex_state = 0}, + [450] = {.lex_state = 5}, + [451] = {.lex_state = 0}, + [452] = {.lex_state = 0}, + [453] = {.lex_state = 1}, + [454] = {.lex_state = 1}, + [455] = {.lex_state = 0}, + [456] = {.lex_state = 1}, + [457] = {.lex_state = 1}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2642,6 +2692,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_struct] = ACTIONS(1), + [anon_sym_new] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_none] = ACTIONS(1), [anon_sym_some] = ACTIONS(1), @@ -2692,35 +2743,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_string] = ACTIONS(1), }, [1] = { - [sym_root] = STATE(414), - [sym_statement] = STATE(16), + [sym_root] = STATE(434), + [sym_statement] = STATE(18), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(16), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(18), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), @@ -2733,420 +2785,124 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [2] = { [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(41), - [sym_identifier] = ACTIONS(43), + [ts_builtin_sym_end] = ACTIONS(43), + [sym_identifier] = ACTIONS(45), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(46), - [anon_sym_async] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(52), - [anon_sym_RBRACE] = ACTIONS(41), - [sym_integer] = ACTIONS(55), - [sym_float] = ACTIONS(58), - [sym_string] = ACTIONS(58), - [anon_sym_true] = ACTIONS(61), - [anon_sym_false] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(64), - [anon_sym_struct] = ACTIONS(67), - [anon_sym_none] = ACTIONS(70), - [anon_sym_some] = ACTIONS(73), - [anon_sym_if] = ACTIONS(76), - [anon_sym_match] = ACTIONS(79), - [anon_sym_while] = ACTIONS(82), - [anon_sym_for] = ACTIONS(85), - [anon_sym_asyncfor] = ACTIONS(88), - [anon_sym_return] = ACTIONS(91), - [anon_sym_args] = ACTIONS(94), - [anon_sym_assert_equal] = ACTIONS(94), - [anon_sym_env] = ACTIONS(94), - [anon_sym_fs] = ACTIONS(94), - [anon_sym_json] = ACTIONS(94), - [anon_sym_length] = ACTIONS(94), - [anon_sym_output] = ACTIONS(94), - [anon_sym_random] = ACTIONS(94), - [anon_sym_string] = ACTIONS(94), + [anon_sym_LPAREN] = ACTIONS(48), + [anon_sym_async] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(54), + [anon_sym_RBRACE] = ACTIONS(43), + [sym_integer] = ACTIONS(57), + [sym_float] = ACTIONS(60), + [sym_string] = ACTIONS(60), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(66), + [anon_sym_struct] = ACTIONS(69), + [anon_sym_new] = ACTIONS(72), + [anon_sym_none] = ACTIONS(75), + [anon_sym_some] = ACTIONS(78), + [anon_sym_if] = ACTIONS(81), + [anon_sym_match] = ACTIONS(84), + [anon_sym_while] = ACTIONS(87), + [anon_sym_for] = ACTIONS(90), + [anon_sym_asyncfor] = ACTIONS(93), + [anon_sym_return] = ACTIONS(96), + [anon_sym_args] = ACTIONS(99), + [anon_sym_assert_equal] = ACTIONS(99), + [anon_sym_env] = ACTIONS(99), + [anon_sym_fs] = ACTIONS(99), + [anon_sym_json] = ACTIONS(99), + [anon_sym_length] = ACTIONS(99), + [anon_sym_output] = ACTIONS(99), + [anon_sym_random] = ACTIONS(99), + [anon_sym_string] = ACTIONS(99), }, [3] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(97), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [4] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(99), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [5] = { - [sym_statement] = STATE(7), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(7), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(101), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [6] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(103), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [7] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(105), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [8] = { [sym_statement] = STATE(17), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(17), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(105), + [anon_sym_RBRACE] = ACTIONS(102), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3154,59 +2910,371 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [4] = { + [sym_statement] = STATE(10), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(10), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(104), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [5] = { + [sym_statement] = STATE(7), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(7), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(106), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [6] = { + [sym_statement] = STATE(8), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(8), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(108), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [7] = { + [sym_statement] = STATE(2), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(108), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [8] = { + [sym_statement] = STATE(2), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(110), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [9] = { - [sym_statement] = STATE(11), + [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(11), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(107), + [anon_sym_RBRACE] = ACTIONS(112), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3214,59 +3282,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [10] = { - [sym_statement] = STATE(3), + [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(3), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(109), + [anon_sym_RBRACE] = ACTIONS(114), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3274,59 +3344,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [11] = { - [sym_statement] = STATE(2), + [sym_statement] = STATE(9), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(9), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(109), + [anon_sym_RBRACE] = ACTIONS(114), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3334,59 +3406,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [12] = { - [sym_statement] = STATE(2), + [sym_statement] = STATE(20), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(20), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(111), + [anon_sym_RBRACE] = ACTIONS(116), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3394,59 +3468,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [13] = { [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_RBRACE] = ACTIONS(118), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3454,59 +3530,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [14] = { [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(115), + [anon_sym_RBRACE] = ACTIONS(120), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3514,59 +3592,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [15] = { [sym_statement] = STATE(13), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(13), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(115), + [anon_sym_RBRACE] = ACTIONS(120), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3574,179 +3654,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [16] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(117), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [17] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(2), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(119), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [18] = { [sym_statement] = STATE(14), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(14), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(121), + [anon_sym_RBRACE] = ACTIONS(122), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3754,179 +3716,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, - [19] = { - [sym_statement] = STATE(12), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(12), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(123), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [20] = { - [sym_statement] = STATE(6), - [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(6), - [sym_identifier] = ACTIONS(5), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(99), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [21] = { + [17] = { [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(125), + [anon_sym_RBRACE] = ACTIONS(116), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3934,59 +3778,309 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [18] = { + [sym_statement] = STATE(2), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(124), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [19] = { + [sym_statement] = STATE(2), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(126), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [20] = { + [sym_statement] = STATE(2), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(128), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), + }, + [21] = { + [sym_statement] = STATE(22), + [sym_expression] = STATE(77), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(22), + [sym_identifier] = ACTIONS(5), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(130), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [22] = { - [sym_statement] = STATE(4), + [sym_statement] = STATE(2), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(4), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(2), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(127), + [anon_sym_RBRACE] = ACTIONS(132), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -3994,59 +4088,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [23] = { - [sym_statement] = STATE(21), + [sym_statement] = STATE(19), [sym_expression] = STATE(77), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(224), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(224), - [sym_index_assignment] = STATE(224), - [sym_if_else] = STATE(224), - [sym_if] = STATE(207), - [sym_match] = STATE(224), - [sym_while] = STATE(224), - [sym_for] = STATE(224), - [sym_return] = STATE(224), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [aux_sym_root_repeat1] = STATE(21), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(230), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(230), + [sym_index_assignment] = STATE(230), + [sym_if_else] = STATE(230), + [sym_if] = STATE(213), + [sym_match] = STATE(230), + [sym_while] = STATE(230), + [sym_for] = STATE(230), + [sym_return] = STATE(230), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [aux_sym_root_repeat1] = STATE(19), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), [anon_sym_async] = ACTIONS(9), [anon_sym_LBRACE] = ACTIONS(11), - [anon_sym_RBRACE] = ACTIONS(111), + [anon_sym_RBRACE] = ACTIONS(132), [sym_integer] = ACTIONS(13), [sym_float] = ACTIONS(15), [sym_string] = ACTIONS(15), @@ -4054,458 +4150,474 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [24] = { - [sym_statement] = STATE(216), - [sym_expression] = STATE(75), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(223), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(223), - [sym_index_assignment] = STATE(223), - [sym_if_else] = STATE(223), - [sym_if] = STATE(207), - [sym_match] = STATE(223), - [sym_while] = STATE(223), - [sym_for] = STATE(223), - [sym_return] = STATE(223), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [sym_identifier] = ACTIONS(5), + [sym_statement] = STATE(285), + [sym_expression] = STATE(154), + [sym__expression_kind] = STATE(108), + [sym_block] = STATE(291), + [sym_value] = STATE(92), + [sym_boolean] = STATE(98), + [sym_list] = STATE(98), + [sym_structure_definition] = STATE(98), + [sym_structure] = STATE(98), + [sym_option] = STATE(98), + [sym_index] = STATE(119), + [sym_index_expression] = STATE(451), + [sym_math] = STATE(108), + [sym_logic] = STATE(108), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(241), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(98), + [sym_function_expression] = STATE(427), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(95), + [sym_yield] = STATE(95), + [sym_built_in_value] = STATE(98), + [sym_identifier] = ACTIONS(134), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_LPAREN] = ACTIONS(136), + [anon_sym_async] = ACTIONS(138), + [anon_sym_LBRACE] = ACTIONS(140), + [sym_integer] = ACTIONS(142), + [sym_float] = ACTIONS(144), + [sym_string] = ACTIONS(144), + [anon_sym_true] = ACTIONS(146), + [anon_sym_false] = ACTIONS(146), + [anon_sym_LBRACK] = ACTIONS(148), + [anon_sym_struct] = ACTIONS(150), + [anon_sym_new] = ACTIONS(152), + [anon_sym_none] = ACTIONS(154), + [anon_sym_some] = ACTIONS(156), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(162), + [anon_sym_for] = ACTIONS(164), + [anon_sym_asyncfor] = ACTIONS(166), + [anon_sym_return] = ACTIONS(168), + [anon_sym_args] = ACTIONS(170), + [anon_sym_assert_equal] = ACTIONS(170), + [anon_sym_env] = ACTIONS(170), + [anon_sym_fs] = ACTIONS(170), + [anon_sym_json] = ACTIONS(170), + [anon_sym_length] = ACTIONS(170), + [anon_sym_output] = ACTIONS(170), + [anon_sym_random] = ACTIONS(170), + [anon_sym_string] = ACTIONS(170), }, [25] = { - [sym_statement] = STATE(291), - [sym_expression] = STATE(304), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(278), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(367), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), + [sym_statement] = STATE(288), + [sym_expression] = STATE(312), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(291), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(376), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), }, [26] = { - [sym_statement] = STATE(291), - [sym_expression] = STATE(122), - [sym__expression_kind] = STATE(93), - [sym_block] = STATE(278), - [sym_value] = STATE(91), - [sym_boolean] = STATE(88), - [sym_list] = STATE(88), - [sym_structure] = STATE(88), - [sym_option] = STATE(88), - [sym_index] = STATE(113), - [sym_index_expression] = STATE(436), - [sym_math] = STATE(93), - [sym_logic] = STATE(93), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(233), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(88), - [sym_function_expression] = STATE(421), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(94), - [sym_yield] = STATE(94), - [sym_built_in_value] = STATE(88), - [sym_identifier] = ACTIONS(165), + [sym_statement] = STATE(288), + [sym_expression] = STATE(154), + [sym__expression_kind] = STATE(108), + [sym_block] = STATE(291), + [sym_value] = STATE(92), + [sym_boolean] = STATE(98), + [sym_list] = STATE(98), + [sym_structure_definition] = STATE(98), + [sym_structure] = STATE(98), + [sym_option] = STATE(98), + [sym_index] = STATE(119), + [sym_index_expression] = STATE(451), + [sym_math] = STATE(108), + [sym_logic] = STATE(108), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(241), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(98), + [sym_function_expression] = STATE(427), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(95), + [sym_yield] = STATE(95), + [sym_built_in_value] = STATE(98), + [sym_identifier] = ACTIONS(134), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(167), - [anon_sym_async] = ACTIONS(169), - [anon_sym_LBRACE] = ACTIONS(171), - [sym_integer] = ACTIONS(173), - [sym_float] = ACTIONS(175), - [sym_string] = ACTIONS(175), - [anon_sym_true] = ACTIONS(177), - [anon_sym_false] = ACTIONS(177), - [anon_sym_LBRACK] = ACTIONS(179), - [anon_sym_struct] = ACTIONS(181), - [anon_sym_none] = ACTIONS(183), - [anon_sym_some] = ACTIONS(185), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(187), - [anon_sym_for] = ACTIONS(189), - [anon_sym_asyncfor] = ACTIONS(191), - [anon_sym_return] = ACTIONS(193), - [anon_sym_args] = ACTIONS(195), - [anon_sym_assert_equal] = ACTIONS(195), - [anon_sym_env] = ACTIONS(195), - [anon_sym_fs] = ACTIONS(195), - [anon_sym_json] = ACTIONS(195), - [anon_sym_length] = ACTIONS(195), - [anon_sym_output] = ACTIONS(195), - [anon_sym_random] = ACTIONS(195), - [anon_sym_string] = ACTIONS(195), + [anon_sym_LPAREN] = ACTIONS(136), + [anon_sym_async] = ACTIONS(138), + [anon_sym_LBRACE] = ACTIONS(140), + [sym_integer] = ACTIONS(142), + [sym_float] = ACTIONS(144), + [sym_string] = ACTIONS(144), + [anon_sym_true] = ACTIONS(146), + [anon_sym_false] = ACTIONS(146), + [anon_sym_LBRACK] = ACTIONS(148), + [anon_sym_struct] = ACTIONS(150), + [anon_sym_new] = ACTIONS(152), + [anon_sym_none] = ACTIONS(154), + [anon_sym_some] = ACTIONS(156), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(162), + [anon_sym_for] = ACTIONS(164), + [anon_sym_asyncfor] = ACTIONS(166), + [anon_sym_return] = ACTIONS(168), + [anon_sym_args] = ACTIONS(170), + [anon_sym_assert_equal] = ACTIONS(170), + [anon_sym_env] = ACTIONS(170), + [anon_sym_fs] = ACTIONS(170), + [anon_sym_json] = ACTIONS(170), + [anon_sym_length] = ACTIONS(170), + [anon_sym_output] = ACTIONS(170), + [anon_sym_random] = ACTIONS(170), + [anon_sym_string] = ACTIONS(170), }, [27] = { - [sym_statement] = STATE(288), - [sym_expression] = STATE(122), - [sym__expression_kind] = STATE(93), - [sym_block] = STATE(278), - [sym_value] = STATE(91), - [sym_boolean] = STATE(88), - [sym_list] = STATE(88), - [sym_structure] = STATE(88), - [sym_option] = STATE(88), - [sym_index] = STATE(113), - [sym_index_expression] = STATE(436), - [sym_math] = STATE(93), - [sym_logic] = STATE(93), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(233), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(88), - [sym_function_expression] = STATE(421), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(94), - [sym_yield] = STATE(94), - [sym_built_in_value] = STATE(88), - [sym_identifier] = ACTIONS(165), + [sym_statement] = STATE(285), + [sym_expression] = STATE(312), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(291), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(376), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(167), - [anon_sym_async] = ACTIONS(169), - [anon_sym_LBRACE] = ACTIONS(171), - [sym_integer] = ACTIONS(173), - [sym_float] = ACTIONS(175), - [sym_string] = ACTIONS(175), - [anon_sym_true] = ACTIONS(177), - [anon_sym_false] = ACTIONS(177), - [anon_sym_LBRACK] = ACTIONS(179), - [anon_sym_struct] = ACTIONS(181), - [anon_sym_none] = ACTIONS(183), - [anon_sym_some] = ACTIONS(185), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(187), - [anon_sym_for] = ACTIONS(189), - [anon_sym_asyncfor] = ACTIONS(191), - [anon_sym_return] = ACTIONS(193), - [anon_sym_args] = ACTIONS(195), - [anon_sym_assert_equal] = ACTIONS(195), - [anon_sym_env] = ACTIONS(195), - [anon_sym_fs] = ACTIONS(195), - [anon_sym_json] = ACTIONS(195), - [anon_sym_length] = ACTIONS(195), - [anon_sym_output] = ACTIONS(195), - [anon_sym_random] = ACTIONS(195), - [anon_sym_string] = ACTIONS(195), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), }, [28] = { - [sym_statement] = STATE(282), - [sym_expression] = STATE(304), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(278), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(367), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), + [sym_statement] = STATE(220), + [sym_expression] = STATE(80), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(228), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(228), + [sym_index_assignment] = STATE(228), + [sym_if_else] = STATE(228), + [sym_if] = STATE(213), + [sym_match] = STATE(228), + [sym_while] = STATE(228), + [sym_for] = STATE(228), + [sym_return] = STATE(228), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [29] = { - [sym_statement] = STATE(286), - [sym_expression] = STATE(304), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(278), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(367), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), + [sym_statement] = STATE(223), + [sym_expression] = STATE(80), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(228), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(228), + [sym_index_assignment] = STATE(228), + [sym_if_else] = STATE(228), + [sym_if] = STATE(213), + [sym_match] = STATE(228), + [sym_while] = STATE(228), + [sym_for] = STATE(228), + [sym_return] = STATE(228), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), + [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(7), + [anon_sym_async] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [sym_integer] = ACTIONS(13), + [sym_float] = ACTIONS(15), + [sym_string] = ACTIONS(15), + [anon_sym_true] = ACTIONS(17), + [anon_sym_false] = ACTIONS(17), + [anon_sym_LBRACK] = ACTIONS(19), + [anon_sym_struct] = ACTIONS(21), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [30] = { - [sym_statement] = STATE(219), - [sym_expression] = STATE(75), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(223), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(223), - [sym_index_assignment] = STATE(223), - [sym_if_else] = STATE(223), - [sym_if] = STATE(207), - [sym_match] = STATE(223), - [sym_while] = STATE(223), - [sym_for] = STATE(223), - [sym_return] = STATE(223), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), - [sym_identifier] = ACTIONS(5), + [sym_statement] = STATE(290), + [sym_expression] = STATE(154), + [sym__expression_kind] = STATE(108), + [sym_block] = STATE(291), + [sym_value] = STATE(92), + [sym_boolean] = STATE(98), + [sym_list] = STATE(98), + [sym_structure_definition] = STATE(98), + [sym_structure] = STATE(98), + [sym_option] = STATE(98), + [sym_index] = STATE(119), + [sym_index_expression] = STATE(451), + [sym_math] = STATE(108), + [sym_logic] = STATE(108), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(241), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(98), + [sym_function_expression] = STATE(427), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(95), + [sym_yield] = STATE(95), + [sym_built_in_value] = STATE(98), + [sym_identifier] = ACTIONS(134), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(7), - [anon_sym_async] = ACTIONS(9), - [anon_sym_LBRACE] = ACTIONS(11), - [sym_integer] = ACTIONS(13), - [sym_float] = ACTIONS(15), - [sym_string] = ACTIONS(15), - [anon_sym_true] = ACTIONS(17), - [anon_sym_false] = ACTIONS(17), - [anon_sym_LBRACK] = ACTIONS(19), - [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_LPAREN] = ACTIONS(136), + [anon_sym_async] = ACTIONS(138), + [anon_sym_LBRACE] = ACTIONS(140), + [sym_integer] = ACTIONS(142), + [sym_float] = ACTIONS(144), + [sym_string] = ACTIONS(144), + [anon_sym_true] = ACTIONS(146), + [anon_sym_false] = ACTIONS(146), + [anon_sym_LBRACK] = ACTIONS(148), + [anon_sym_struct] = ACTIONS(150), + [anon_sym_new] = ACTIONS(152), + [anon_sym_none] = ACTIONS(154), + [anon_sym_some] = ACTIONS(156), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(162), + [anon_sym_for] = ACTIONS(164), + [anon_sym_asyncfor] = ACTIONS(166), + [anon_sym_return] = ACTIONS(168), + [anon_sym_args] = ACTIONS(170), + [anon_sym_assert_equal] = ACTIONS(170), + [anon_sym_env] = ACTIONS(170), + [anon_sym_fs] = ACTIONS(170), + [anon_sym_json] = ACTIONS(170), + [anon_sym_length] = ACTIONS(170), + [anon_sym_output] = ACTIONS(170), + [anon_sym_random] = ACTIONS(170), + [anon_sym_string] = ACTIONS(170), }, [31] = { - [sym_statement] = STATE(221), - [sym_expression] = STATE(75), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(223), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(223), - [sym_index_assignment] = STATE(223), - [sym_if_else] = STATE(223), - [sym_if] = STATE(207), - [sym_match] = STATE(223), - [sym_while] = STATE(223), - [sym_for] = STATE(223), - [sym_return] = STATE(223), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym_statement] = STATE(225), + [sym_expression] = STATE(80), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(228), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(228), + [sym_index_assignment] = STATE(228), + [sym_if_else] = STATE(228), + [sym_if] = STATE(213), + [sym_match] = STATE(228), + [sym_while] = STATE(228), + [sym_for] = STATE(228), + [sym_return] = STATE(228), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), @@ -4518,52 +4630,174 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [32] = { - [sym_statement] = STATE(226), - [sym_expression] = STATE(75), - [sym__expression_kind] = STATE(48), - [sym_block] = STATE(223), - [sym_value] = STATE(54), - [sym_boolean] = STATE(52), - [sym_list] = STATE(52), - [sym_structure] = STATE(52), - [sym_option] = STATE(52), - [sym_index] = STATE(60), - [sym_index_expression] = STATE(433), - [sym_math] = STATE(48), - [sym_logic] = STATE(48), - [sym_assignment] = STATE(223), - [sym_index_assignment] = STATE(223), - [sym_if_else] = STATE(223), - [sym_if] = STATE(207), - [sym_match] = STATE(223), - [sym_while] = STATE(223), - [sym_for] = STATE(223), - [sym_return] = STATE(223), - [sym_function] = STATE(52), - [sym_function_expression] = STATE(434), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(59), - [sym_yield] = STATE(59), - [sym_built_in_value] = STATE(52), + [sym_statement] = STATE(286), + [sym_expression] = STATE(154), + [sym__expression_kind] = STATE(108), + [sym_block] = STATE(291), + [sym_value] = STATE(92), + [sym_boolean] = STATE(98), + [sym_list] = STATE(98), + [sym_structure_definition] = STATE(98), + [sym_structure] = STATE(98), + [sym_option] = STATE(98), + [sym_index] = STATE(119), + [sym_index_expression] = STATE(451), + [sym_math] = STATE(108), + [sym_logic] = STATE(108), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(241), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(98), + [sym_function_expression] = STATE(427), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(95), + [sym_yield] = STATE(95), + [sym_built_in_value] = STATE(98), + [sym_identifier] = ACTIONS(134), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(136), + [anon_sym_async] = ACTIONS(138), + [anon_sym_LBRACE] = ACTIONS(140), + [sym_integer] = ACTIONS(142), + [sym_float] = ACTIONS(144), + [sym_string] = ACTIONS(144), + [anon_sym_true] = ACTIONS(146), + [anon_sym_false] = ACTIONS(146), + [anon_sym_LBRACK] = ACTIONS(148), + [anon_sym_struct] = ACTIONS(150), + [anon_sym_new] = ACTIONS(152), + [anon_sym_none] = ACTIONS(154), + [anon_sym_some] = ACTIONS(156), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(162), + [anon_sym_for] = ACTIONS(164), + [anon_sym_asyncfor] = ACTIONS(166), + [anon_sym_return] = ACTIONS(168), + [anon_sym_args] = ACTIONS(170), + [anon_sym_assert_equal] = ACTIONS(170), + [anon_sym_env] = ACTIONS(170), + [anon_sym_fs] = ACTIONS(170), + [anon_sym_json] = ACTIONS(170), + [anon_sym_length] = ACTIONS(170), + [anon_sym_output] = ACTIONS(170), + [anon_sym_random] = ACTIONS(170), + [anon_sym_string] = ACTIONS(170), + }, + [33] = { + [sym_statement] = STATE(286), + [sym_expression] = STATE(312), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(291), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(376), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), + [sym__comment] = ACTIONS(3), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), + }, + [34] = { + [sym_statement] = STATE(227), + [sym_expression] = STATE(80), + [sym__expression_kind] = STATE(47), + [sym_block] = STATE(228), + [sym_value] = STATE(70), + [sym_boolean] = STATE(55), + [sym_list] = STATE(55), + [sym_structure_definition] = STATE(55), + [sym_structure] = STATE(55), + [sym_option] = STATE(55), + [sym_index] = STATE(48), + [sym_index_expression] = STATE(435), + [sym_math] = STATE(47), + [sym_logic] = STATE(47), + [sym_assignment] = STATE(228), + [sym_index_assignment] = STATE(228), + [sym_if_else] = STATE(228), + [sym_if] = STATE(213), + [sym_match] = STATE(228), + [sym_while] = STATE(228), + [sym_for] = STATE(228), + [sym_return] = STATE(228), + [sym_function] = STATE(55), + [sym_function_expression] = STATE(445), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(63), + [sym_yield] = STATE(63), + [sym_built_in_value] = STATE(55), [sym_identifier] = ACTIONS(5), [sym__comment] = ACTIONS(3), [anon_sym_LPAREN] = ACTIONS(7), @@ -4576,503 +4810,276 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(17), [anon_sym_LBRACK] = ACTIONS(19), [anon_sym_struct] = ACTIONS(21), - [anon_sym_none] = ACTIONS(23), - [anon_sym_some] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_match] = ACTIONS(29), - [anon_sym_while] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), - [anon_sym_asyncfor] = ACTIONS(35), - [anon_sym_return] = ACTIONS(37), - [anon_sym_args] = ACTIONS(39), - [anon_sym_assert_equal] = ACTIONS(39), - [anon_sym_env] = ACTIONS(39), - [anon_sym_fs] = ACTIONS(39), - [anon_sym_json] = ACTIONS(39), - [anon_sym_length] = ACTIONS(39), - [anon_sym_output] = ACTIONS(39), - [anon_sym_random] = ACTIONS(39), - [anon_sym_string] = ACTIONS(39), - }, - [33] = { - [sym_statement] = STATE(288), - [sym_expression] = STATE(304), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(278), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(367), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), - }, - [34] = { - [sym_statement] = STATE(286), - [sym_expression] = STATE(122), - [sym__expression_kind] = STATE(93), - [sym_block] = STATE(278), - [sym_value] = STATE(91), - [sym_boolean] = STATE(88), - [sym_list] = STATE(88), - [sym_structure] = STATE(88), - [sym_option] = STATE(88), - [sym_index] = STATE(113), - [sym_index_expression] = STATE(436), - [sym_math] = STATE(93), - [sym_logic] = STATE(93), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(233), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(88), - [sym_function_expression] = STATE(421), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(94), - [sym_yield] = STATE(94), - [sym_built_in_value] = STATE(88), - [sym_identifier] = ACTIONS(165), - [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(167), - [anon_sym_async] = ACTIONS(169), - [anon_sym_LBRACE] = ACTIONS(171), - [sym_integer] = ACTIONS(173), - [sym_float] = ACTIONS(175), - [sym_string] = ACTIONS(175), - [anon_sym_true] = ACTIONS(177), - [anon_sym_false] = ACTIONS(177), - [anon_sym_LBRACK] = ACTIONS(179), - [anon_sym_struct] = ACTIONS(181), - [anon_sym_none] = ACTIONS(183), - [anon_sym_some] = ACTIONS(185), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(187), - [anon_sym_for] = ACTIONS(189), - [anon_sym_asyncfor] = ACTIONS(191), - [anon_sym_return] = ACTIONS(193), - [anon_sym_args] = ACTIONS(195), - [anon_sym_assert_equal] = ACTIONS(195), - [anon_sym_env] = ACTIONS(195), - [anon_sym_fs] = ACTIONS(195), - [anon_sym_json] = ACTIONS(195), - [anon_sym_length] = ACTIONS(195), - [anon_sym_output] = ACTIONS(195), - [anon_sym_random] = ACTIONS(195), - [anon_sym_string] = ACTIONS(195), + [anon_sym_new] = ACTIONS(23), + [anon_sym_none] = ACTIONS(25), + [anon_sym_some] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_match] = ACTIONS(31), + [anon_sym_while] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), + [anon_sym_asyncfor] = ACTIONS(37), + [anon_sym_return] = ACTIONS(39), + [anon_sym_args] = ACTIONS(41), + [anon_sym_assert_equal] = ACTIONS(41), + [anon_sym_env] = ACTIONS(41), + [anon_sym_fs] = ACTIONS(41), + [anon_sym_json] = ACTIONS(41), + [anon_sym_length] = ACTIONS(41), + [anon_sym_output] = ACTIONS(41), + [anon_sym_random] = ACTIONS(41), + [anon_sym_string] = ACTIONS(41), }, [35] = { - [sym_statement] = STATE(388), - [sym_expression] = STATE(300), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(280), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(280), - [sym_index_assignment] = STATE(280), - [sym_if_else] = STATE(280), - [sym_if] = STATE(367), - [sym_match] = STATE(280), - [sym_while] = STATE(280), - [sym_for] = STATE(280), - [sym_return] = STATE(280), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), + [sym_statement] = STATE(400), + [sym_expression] = STATE(313), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(295), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(295), + [sym_index_assignment] = STATE(295), + [sym_if_else] = STATE(295), + [sym_if] = STATE(376), + [sym_match] = STATE(295), + [sym_while] = STATE(295), + [sym_for] = STATE(295), + [sym_return] = STATE(295), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), }, [36] = { - [sym_statement] = STATE(383), - [sym_expression] = STATE(300), - [sym__expression_kind] = STATE(250), - [sym_block] = STATE(280), - [sym_value] = STATE(239), - [sym_boolean] = STATE(260), - [sym_list] = STATE(260), - [sym_structure] = STATE(260), - [sym_option] = STATE(260), - [sym_index] = STATE(277), - [sym_index_expression] = STATE(422), - [sym_math] = STATE(250), - [sym_logic] = STATE(250), - [sym_assignment] = STATE(280), - [sym_index_assignment] = STATE(280), - [sym_if_else] = STATE(280), - [sym_if] = STATE(367), - [sym_match] = STATE(280), - [sym_while] = STATE(280), - [sym_for] = STATE(280), - [sym_return] = STATE(280), - [sym_function] = STATE(260), - [sym_function_expression] = STATE(416), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(245), - [sym_yield] = STATE(245), - [sym_built_in_value] = STATE(260), - [sym_identifier] = ACTIONS(129), + [sym_statement] = STATE(387), + [sym_expression] = STATE(313), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(295), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(295), + [sym_index_assignment] = STATE(295), + [sym_if_else] = STATE(295), + [sym_if] = STATE(376), + [sym_match] = STATE(295), + [sym_while] = STATE(295), + [sym_for] = STATE(295), + [sym_return] = STATE(295), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(131), - [anon_sym_async] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(135), - [sym_integer] = ACTIONS(137), - [sym_float] = ACTIONS(139), - [sym_string] = ACTIONS(139), - [anon_sym_true] = ACTIONS(141), - [anon_sym_false] = ACTIONS(141), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_struct] = ACTIONS(145), - [anon_sym_none] = ACTIONS(147), - [anon_sym_some] = ACTIONS(149), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(155), - [anon_sym_for] = ACTIONS(157), - [anon_sym_asyncfor] = ACTIONS(159), - [anon_sym_return] = ACTIONS(161), - [anon_sym_args] = ACTIONS(163), - [anon_sym_assert_equal] = ACTIONS(163), - [anon_sym_env] = ACTIONS(163), - [anon_sym_fs] = ACTIONS(163), - [anon_sym_json] = ACTIONS(163), - [anon_sym_length] = ACTIONS(163), - [anon_sym_output] = ACTIONS(163), - [anon_sym_random] = ACTIONS(163), - [anon_sym_string] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), }, [37] = { - [sym_statement] = STATE(294), - [sym_expression] = STATE(128), - [sym__expression_kind] = STATE(93), - [sym_block] = STATE(280), - [sym_value] = STATE(91), - [sym_boolean] = STATE(88), - [sym_list] = STATE(88), - [sym_structure] = STATE(88), - [sym_option] = STATE(88), - [sym_index] = STATE(113), - [sym_index_expression] = STATE(436), - [sym_math] = STATE(93), - [sym_logic] = STATE(93), - [sym_assignment] = STATE(280), - [sym_index_assignment] = STATE(280), - [sym_if_else] = STATE(280), - [sym_if] = STATE(233), - [sym_match] = STATE(280), - [sym_while] = STATE(280), - [sym_for] = STATE(280), - [sym_return] = STATE(280), - [sym_function] = STATE(88), - [sym_function_expression] = STATE(421), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(94), - [sym_yield] = STATE(94), - [sym_built_in_value] = STATE(88), - [sym_identifier] = ACTIONS(165), + [sym_statement] = STATE(290), + [sym_expression] = STATE(312), + [sym__expression_kind] = STATE(260), + [sym_block] = STATE(291), + [sym_value] = STATE(276), + [sym_boolean] = STATE(273), + [sym_list] = STATE(273), + [sym_structure_definition] = STATE(273), + [sym_structure] = STATE(273), + [sym_option] = STATE(273), + [sym_index] = STATE(300), + [sym_index_expression] = STATE(455), + [sym_math] = STATE(260), + [sym_logic] = STATE(260), + [sym_assignment] = STATE(291), + [sym_index_assignment] = STATE(291), + [sym_if_else] = STATE(291), + [sym_if] = STATE(376), + [sym_match] = STATE(291), + [sym_while] = STATE(291), + [sym_for] = STATE(291), + [sym_return] = STATE(291), + [sym_function] = STATE(273), + [sym_function_expression] = STATE(440), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(270), + [sym_yield] = STATE(270), + [sym_built_in_value] = STATE(273), + [sym_identifier] = ACTIONS(172), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(167), - [anon_sym_async] = ACTIONS(169), - [anon_sym_LBRACE] = ACTIONS(171), - [sym_integer] = ACTIONS(173), - [sym_float] = ACTIONS(175), - [sym_string] = ACTIONS(175), - [anon_sym_true] = ACTIONS(177), - [anon_sym_false] = ACTIONS(177), - [anon_sym_LBRACK] = ACTIONS(179), - [anon_sym_struct] = ACTIONS(181), - [anon_sym_none] = ACTIONS(183), - [anon_sym_some] = ACTIONS(185), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(187), - [anon_sym_for] = ACTIONS(189), - [anon_sym_asyncfor] = ACTIONS(191), - [anon_sym_return] = ACTIONS(193), - [anon_sym_args] = ACTIONS(195), - [anon_sym_assert_equal] = ACTIONS(195), - [anon_sym_env] = ACTIONS(195), - [anon_sym_fs] = ACTIONS(195), - [anon_sym_json] = ACTIONS(195), - [anon_sym_length] = ACTIONS(195), - [anon_sym_output] = ACTIONS(195), - [anon_sym_random] = ACTIONS(195), - [anon_sym_string] = ACTIONS(195), + [anon_sym_LPAREN] = ACTIONS(174), + [anon_sym_async] = ACTIONS(176), + [anon_sym_LBRACE] = ACTIONS(178), + [sym_integer] = ACTIONS(180), + [sym_float] = ACTIONS(182), + [sym_string] = ACTIONS(182), + [anon_sym_true] = ACTIONS(184), + [anon_sym_false] = ACTIONS(184), + [anon_sym_LBRACK] = ACTIONS(186), + [anon_sym_struct] = ACTIONS(188), + [anon_sym_new] = ACTIONS(190), + [anon_sym_none] = ACTIONS(192), + [anon_sym_some] = ACTIONS(194), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(196), + [anon_sym_for] = ACTIONS(198), + [anon_sym_asyncfor] = ACTIONS(200), + [anon_sym_return] = ACTIONS(202), + [anon_sym_args] = ACTIONS(204), + [anon_sym_assert_equal] = ACTIONS(204), + [anon_sym_env] = ACTIONS(204), + [anon_sym_fs] = ACTIONS(204), + [anon_sym_json] = ACTIONS(204), + [anon_sym_length] = ACTIONS(204), + [anon_sym_output] = ACTIONS(204), + [anon_sym_random] = ACTIONS(204), + [anon_sym_string] = ACTIONS(204), }, [38] = { - [sym_statement] = STATE(282), - [sym_expression] = STATE(122), - [sym__expression_kind] = STATE(93), - [sym_block] = STATE(278), - [sym_value] = STATE(91), - [sym_boolean] = STATE(88), - [sym_list] = STATE(88), - [sym_structure] = STATE(88), - [sym_option] = STATE(88), - [sym_index] = STATE(113), - [sym_index_expression] = STATE(436), - [sym_math] = STATE(93), - [sym_logic] = STATE(93), - [sym_assignment] = STATE(278), - [sym_index_assignment] = STATE(278), - [sym_if_else] = STATE(278), - [sym_if] = STATE(233), - [sym_match] = STATE(278), - [sym_while] = STATE(278), - [sym_for] = STATE(278), - [sym_return] = STATE(278), - [sym_function] = STATE(88), - [sym_function_expression] = STATE(421), - [sym__function_expression_kind] = STATE(46), - [sym_function_call] = STATE(94), - [sym_yield] = STATE(94), - [sym_built_in_value] = STATE(88), - [sym_identifier] = ACTIONS(165), + [sym_statement] = STATE(301), + [sym_expression] = STATE(155), + [sym__expression_kind] = STATE(108), + [sym_block] = STATE(295), + [sym_value] = STATE(92), + [sym_boolean] = STATE(98), + [sym_list] = STATE(98), + [sym_structure_definition] = STATE(98), + [sym_structure] = STATE(98), + [sym_option] = STATE(98), + [sym_index] = STATE(119), + [sym_index_expression] = STATE(451), + [sym_math] = STATE(108), + [sym_logic] = STATE(108), + [sym_assignment] = STATE(295), + [sym_index_assignment] = STATE(295), + [sym_if_else] = STATE(295), + [sym_if] = STATE(241), + [sym_match] = STATE(295), + [sym_while] = STATE(295), + [sym_for] = STATE(295), + [sym_return] = STATE(295), + [sym_function] = STATE(98), + [sym_function_expression] = STATE(427), + [sym__function_expression_kind] = STATE(66), + [sym_function_call] = STATE(95), + [sym_yield] = STATE(95), + [sym_built_in_value] = STATE(98), + [sym_identifier] = ACTIONS(134), [sym__comment] = ACTIONS(3), - [anon_sym_LPAREN] = ACTIONS(167), - [anon_sym_async] = ACTIONS(169), - [anon_sym_LBRACE] = ACTIONS(171), - [sym_integer] = ACTIONS(173), - [sym_float] = ACTIONS(175), - [sym_string] = ACTIONS(175), - [anon_sym_true] = ACTIONS(177), - [anon_sym_false] = ACTIONS(177), - [anon_sym_LBRACK] = ACTIONS(179), - [anon_sym_struct] = ACTIONS(181), - [anon_sym_none] = ACTIONS(183), - [anon_sym_some] = ACTIONS(185), - [anon_sym_if] = ACTIONS(151), - [anon_sym_match] = ACTIONS(153), - [anon_sym_while] = ACTIONS(187), - [anon_sym_for] = ACTIONS(189), - [anon_sym_asyncfor] = ACTIONS(191), - [anon_sym_return] = ACTIONS(193), - [anon_sym_args] = ACTIONS(195), - [anon_sym_assert_equal] = ACTIONS(195), - [anon_sym_env] = ACTIONS(195), - [anon_sym_fs] = ACTIONS(195), - [anon_sym_json] = ACTIONS(195), - [anon_sym_length] = ACTIONS(195), - [anon_sym_output] = ACTIONS(195), - [anon_sym_random] = ACTIONS(195), - [anon_sym_string] = ACTIONS(195), + [anon_sym_LPAREN] = ACTIONS(136), + [anon_sym_async] = ACTIONS(138), + [anon_sym_LBRACE] = ACTIONS(140), + [sym_integer] = ACTIONS(142), + [sym_float] = ACTIONS(144), + [sym_string] = ACTIONS(144), + [anon_sym_true] = ACTIONS(146), + [anon_sym_false] = ACTIONS(146), + [anon_sym_LBRACK] = ACTIONS(148), + [anon_sym_struct] = ACTIONS(150), + [anon_sym_new] = ACTIONS(152), + [anon_sym_none] = ACTIONS(154), + [anon_sym_some] = ACTIONS(156), + [anon_sym_if] = ACTIONS(158), + [anon_sym_match] = ACTIONS(160), + [anon_sym_while] = ACTIONS(162), + [anon_sym_for] = ACTIONS(164), + [anon_sym_asyncfor] = ACTIONS(166), + [anon_sym_return] = ACTIONS(168), + [anon_sym_args] = ACTIONS(170), + [anon_sym_assert_equal] = ACTIONS(170), + [anon_sym_env] = ACTIONS(170), + [anon_sym_fs] = ACTIONS(170), + [anon_sym_json] = ACTIONS(170), + [anon_sym_length] = ACTIONS(170), + [anon_sym_output] = ACTIONS(170), + [anon_sym_random] = ACTIONS(170), + [anon_sym_string] = ACTIONS(170), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 6, + [0] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(201), 1, - anon_sym_DASH_GT, - STATE(194), 1, - sym_logic_operator, - STATE(197), 1, + STATE(158), 1, sym_math_operator, - ACTIONS(197), 22, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - ACTIONS(199), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [66] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(201), 1, - anon_sym_DASH_GT, - STATE(194), 1, + STATE(208), 1, sym_logic_operator, - STATE(197), 1, - sym_math_operator, - ACTIONS(203), 22, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - ACTIONS(205), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [132] = 5, - ACTIONS(3), 1, - sym__comment, - STATE(194), 1, - sym_logic_operator, - STATE(197), 1, - sym_math_operator, - ACTIONS(207), 23, + ACTIONS(206), 23, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LPAREN, @@ -5096,13 +5103,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_EQ, anon_sym_asyncfor, anon_sym_DASH_GT, - ACTIONS(209), 27, + ACTIONS(208), 28, anon_sym_async, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_EQ, anon_sym_none, anon_sym_some, @@ -5124,14 +5132,256 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [196] = 5, + [65] = 6, ACTIONS(3), 1, sym__comment, - STATE(176), 1, - sym_logic_operator, - STATE(179), 1, + ACTIONS(214), 1, + anon_sym_DASH_GT, + STATE(158), 1, sym_math_operator, - ACTIONS(207), 22, + STATE(208), 1, + sym_logic_operator, + ACTIONS(210), 22, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + ACTIONS(212), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [132] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(214), 1, + anon_sym_DASH_GT, + STATE(158), 1, + sym_math_operator, + STATE(208), 1, + sym_logic_operator, + ACTIONS(216), 22, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + ACTIONS(218), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [199] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(220), 1, + anon_sym_DASH_GT, + STATE(186), 1, + sym_logic_operator, + STATE(187), 1, + sym_math_operator, + ACTIONS(216), 21, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + ACTIONS(218), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [265] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(220), 1, + anon_sym_DASH_GT, + STATE(186), 1, + sym_logic_operator, + STATE(187), 1, + sym_math_operator, + ACTIONS(210), 21, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + ACTIONS(212), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [331] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(186), 1, + sym_logic_operator, + STATE(187), 1, + sym_math_operator, + ACTIONS(206), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LPAREN, @@ -5154,13 +5404,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_EQ, anon_sym_asyncfor, anon_sym_DASH_GT, - ACTIONS(209), 27, + ACTIONS(208), 28, anon_sym_async, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_EQ, anon_sym_none, anon_sym_some, @@ -5182,16 +5433,1373 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [259] = 6, + [395] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(211), 1, + ACTIONS(226), 1, + anon_sym_LBRACE, + STATE(57), 1, + sym_structure_instantiator, + ACTIONS(222), 22, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, anon_sym_DASH_GT, - STATE(176), 1, - sym_logic_operator, - STATE(179), 1, - sym_math_operator, - ACTIONS(203), 21, + ACTIONS(224), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [459] = 10, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(234), 1, + anon_sym_EQ, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(238), 1, + anon_sym_LT, + STATE(34), 1, + sym_assignment_operator, + STATE(378), 1, + sym_type_definition, + ACTIONS(240), 2, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(228), 18, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(230), 26, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [533] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(242), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(244), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [592] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(234), 1, + anon_sym_EQ, + ACTIONS(236), 1, + anon_sym_COLON, + STATE(28), 1, + sym_assignment_operator, + ACTIONS(240), 2, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(228), 18, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(230), 27, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [661] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(246), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(248), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [720] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(250), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(252), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [779] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(254), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(256), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [838] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(258), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(260), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [897] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(262), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(264), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [956] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(266), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(268), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1015] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(270), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(272), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1074] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(274), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(276), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1133] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(278), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(280), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1192] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(282), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(284), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1251] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(286), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(288), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1310] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(290), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(292), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1369] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(294), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(296), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1428] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(298), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(300), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1487] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(228), 22, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(230), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1548] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(302), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(304), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1607] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(306), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(308), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1666] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(310), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(312), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1725] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(314), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(316), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1784] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(318), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(320), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [1843] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(322), 1, + anon_sym_DOT_DOT, + ACTIONS(262), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LPAREN, @@ -5213,13 +6821,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_asyncfor, - ACTIONS(205), 27, + anon_sym_DASH_GT, + ACTIONS(264), 28, anon_sym_async, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_EQ, anon_sym_none, anon_sym_some, @@ -5241,25 +6851,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [324] = 6, + [1904] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(211), 1, - anon_sym_DASH_GT, - STATE(176), 1, - sym_logic_operator, - STATE(179), 1, - sym_math_operator, - ACTIONS(197), 21, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(228), 21, ts_builtin_sym_end, anon_sym_SEMI, - anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, sym_float, sym_string, anon_sym_LBRACK, - anon_sym_COLON, + anon_sym_DOT_DOT, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -5272,13 +6879,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_asyncfor, - ACTIONS(199), 27, + anon_sym_DASH_GT, + ACTIONS(230), 28, anon_sym_async, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_EQ, anon_sym_none, anon_sym_some, @@ -5300,28 +6909,2482 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [389] = 10, + [1967] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(217), 1, + ACTIONS(236), 23, + ts_builtin_sym_end, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(219), 1, - anon_sym_EQ, - ACTIONS(221), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, anon_sym_COLON, - ACTIONS(223), 1, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(324), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2026] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(326), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(328), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2085] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(330), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(332), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2144] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(334), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(336), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2203] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(338), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(340), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2262] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(342), 23, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(344), 28, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2321] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(350), 1, + anon_sym_SEMI, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(360), 1, + anon_sym_DASH_GT, + STATE(196), 1, + sym_math_operator, + STATE(197), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(346), 8, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(348), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2393] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(360), 1, + anon_sym_DASH_GT, + STATE(196), 1, + sym_math_operator, + STATE(197), 1, + sym_logic_operator, + ACTIONS(210), 19, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_asyncfor, + ACTIONS(212), 26, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2455] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(360), 1, + anon_sym_DASH_GT, + STATE(196), 1, + sym_math_operator, + STATE(197), 1, + sym_logic_operator, + ACTIONS(216), 19, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_asyncfor, + ACTIONS(218), 26, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2517] = 10, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(360), 1, + anon_sym_DASH_GT, + STATE(196), 1, + sym_math_operator, + STATE(197), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(346), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(348), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2587] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(362), 1, + anon_sym_DASH_GT, + STATE(157), 1, + sym_logic_operator, + STATE(209), 1, + sym_math_operator, + ACTIONS(216), 22, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(218), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2648] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(364), 1, + anon_sym_LBRACE, + STATE(90), 1, + sym_structure_instantiator, + ACTIONS(224), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(222), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [2707] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(362), 1, + anon_sym_DASH_GT, + STATE(157), 1, + sym_logic_operator, + STATE(209), 1, + sym_math_operator, + ACTIONS(210), 22, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(212), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2768] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(157), 1, + sym_logic_operator, + STATE(209), 1, + sym_math_operator, + ACTIONS(208), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(206), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [2827] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(232), 20, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_asyncfor, + anon_sym_DASH_GT, + ACTIONS(366), 26, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2884] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(368), 1, + anon_sym_DASH_GT, + STATE(168), 1, + sym_logic_operator, + STATE(169), 1, + sym_math_operator, + ACTIONS(210), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(212), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [2944] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(368), 1, + anon_sym_DASH_GT, + STATE(168), 1, + sym_logic_operator, + STATE(169), 1, + sym_math_operator, + ACTIONS(216), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + ACTIONS(218), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [3004] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(168), 1, + sym_logic_operator, + STATE(169), 1, + sym_math_operator, + ACTIONS(206), 22, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + ACTIONS(208), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [3062] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(296), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(294), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3115] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(280), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(278), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3168] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(264), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(262), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3221] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(228), 21, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + ACTIONS(230), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [3278] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(344), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(342), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3331] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(332), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(330), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3384] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(228), 22, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + ACTIONS(230), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [3439] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(316), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(314), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3492] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(300), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(298), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3545] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(272), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(270), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3598] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(284), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(282), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3651] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(248), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(246), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3704] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(312), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(310), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3757] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(328), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(326), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3810] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(336), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(334), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3863] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(340), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(338), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3916] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(288), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(286), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [3969] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(252), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(250), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4022] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(256), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(254), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4075] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(244), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(242), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4128] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(276), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(274), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4181] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(304), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(302), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4234] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(324), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(236), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4287] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(370), 1, + anon_sym_DOT_DOT, + ACTIONS(262), 22, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + ACTIONS(264), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [4342] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(308), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(306), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4395] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(292), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(290), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4448] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(320), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(318), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4501] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(268), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(266), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4554] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(260), 22, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_EQ, + anon_sym_none, + anon_sym_some, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + ACTIONS(258), 23, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_DASH_GT, + [4607] = 10, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(234), 1, + anon_sym_EQ, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(238), 1, anon_sym_LT, STATE(32), 1, sym_assignment_operator, - STATE(369), 1, + STATE(379), 1, sym_type_definition, - ACTIONS(225), 2, + ACTIONS(240), 2, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, - ACTIONS(213), 18, - ts_builtin_sym_end, + ACTIONS(228), 16, anon_sym_SEMI, - anon_sym_LBRACE, + anon_sym_COMMA, anon_sym_RBRACE, sym_float, sym_string, @@ -5335,25 +9398,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_asyncfor, anon_sym_DASH_GT, - ACTIONS(215), 25, - anon_sym_async, + ACTIONS(230), 20, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_PLUS, anon_sym_DASH, anon_sym_GT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -5363,3501 +9420,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [462] = 3, + [4673] = 8, ACTIONS(3), 1, sym__comment, - ACTIONS(227), 23, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(232), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(229), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, + ACTIONS(234), 1, anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [520] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(231), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, + ACTIONS(236), 1, anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(233), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [578] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(235), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(237), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [636] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(239), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(241), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [694] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(243), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(245), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [752] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(247), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(249), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [810] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(251), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(253), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [868] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(255), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(257), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [926] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(213), 21, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(215), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [988] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(259), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(261), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1046] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(263), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(265), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1104] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(267), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(269), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1162] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(271), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(273), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1220] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(213), 22, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(215), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1280] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(219), 1, - anon_sym_EQ, - ACTIONS(221), 1, - anon_sym_COLON, - STATE(31), 1, + STATE(24), 1, sym_assignment_operator, - ACTIONS(225), 2, + ACTIONS(240), 2, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, - ACTIONS(213), 18, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(215), 26, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1348] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(275), 1, - anon_sym_DOT_DOT, - ACTIONS(243), 22, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(245), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1408] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(221), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(277), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1466] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(279), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(281), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1524] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(283), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(285), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1582] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(287), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(289), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1640] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(291), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(293), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1698] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(295), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(297), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1756] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(299), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(301), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1814] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(303), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(305), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1872] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(307), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(309), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1930] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(311), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(313), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [1988] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(315), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(317), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2046] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(319), 23, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(321), 27, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2104] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(323), 1, - anon_sym_DASH_GT, - STATE(170), 1, - sym_math_operator, - STATE(172), 1, - sym_logic_operator, - ACTIONS(197), 19, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_asyncfor, - ACTIONS(199), 25, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2165] = 10, - ACTIONS(3), 1, - sym__comment, - ACTIONS(323), 1, - anon_sym_DASH_GT, - ACTIONS(331), 1, - anon_sym_DASH, - STATE(170), 1, - sym_math_operator, - STATE(172), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(325), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(327), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2234] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(323), 1, - anon_sym_DASH_GT, - STATE(170), 1, - sym_math_operator, - STATE(172), 1, - sym_logic_operator, - ACTIONS(203), 19, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_asyncfor, - ACTIONS(205), 25, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2295] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(323), 1, - anon_sym_DASH_GT, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(337), 1, - anon_sym_SEMI, - STATE(170), 1, - sym_math_operator, - STATE(172), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(325), 8, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(327), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2366] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(217), 20, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_asyncfor, - anon_sym_DASH_GT, - ACTIONS(339), 25, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2422] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(341), 1, - anon_sym_DASH_GT, - STATE(174), 1, - sym_logic_operator, - STATE(177), 1, - sym_math_operator, - ACTIONS(205), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(203), 22, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - [2482] = 5, - ACTIONS(3), 1, - sym__comment, - STATE(174), 1, - sym_logic_operator, - STATE(177), 1, - sym_math_operator, - ACTIONS(209), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(207), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2540] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(341), 1, - anon_sym_DASH_GT, - STATE(174), 1, - sym_logic_operator, - STATE(177), 1, - sym_math_operator, - ACTIONS(199), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(197), 22, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - [2600] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(343), 1, - anon_sym_DASH_GT, - STATE(160), 1, - sym_logic_operator, - STATE(161), 1, - sym_math_operator, - ACTIONS(197), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - ACTIONS(199), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2659] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(343), 1, - anon_sym_DASH_GT, - STATE(160), 1, - sym_logic_operator, - STATE(161), 1, - sym_math_operator, - ACTIONS(203), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - ACTIONS(205), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [2718] = 5, - ACTIONS(3), 1, - sym__comment, - STATE(160), 1, - sym_logic_operator, - STATE(161), 1, - sym_math_operator, - ACTIONS(209), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(207), 22, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2775] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(277), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(221), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2827] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(273), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(271), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2879] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(289), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(287), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2931] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(253), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(251), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [2983] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(229), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(227), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3035] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(317), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(315), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3087] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(213), 21, - anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - ACTIONS(215), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [3143] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(257), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(255), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3195] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(237), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(235), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3247] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(215), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(213), 22, - anon_sym_SEMI, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3301] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(293), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(291), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3353] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(305), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(303), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3405] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(309), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(307), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3457] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(313), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(311), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3509] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(233), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(231), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3561] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(301), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(299), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3613] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(245), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(243), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3665] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(345), 1, - anon_sym_DOT_DOT, - ACTIONS(245), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(243), 22, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3719] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(261), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(259), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3771] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(249), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(247), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3823] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(281), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(279), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3875] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(241), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(239), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3927] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(265), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(263), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [3979] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(269), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(267), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [4031] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(285), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(283), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [4083] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(297), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(295), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [4135] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(321), 21, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_EQ, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(319), 23, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_DASH_GT, - [4187] = 10, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(219), 1, - anon_sym_EQ, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(223), 1, - anon_sym_LT, - STATE(27), 1, - sym_assignment_operator, - STATE(370), 1, - sym_type_definition, - ACTIONS(225), 2, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - ACTIONS(213), 16, + ACTIONS(228), 16, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, @@ -8874,63 +9451,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - ACTIONS(215), 19, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4252] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(219), 1, - anon_sym_EQ, - ACTIONS(221), 1, - anon_sym_COLON, - STATE(34), 1, - sym_assignment_operator, - ACTIONS(225), 2, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - ACTIONS(213), 16, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - ACTIONS(215), 20, + ACTIONS(230), 21, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_PLUS, @@ -8946,760 +9473,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [4312] = 6, + [4734] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(347), 1, - anon_sym_DASH_GT, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, - sym_logic_operator, - ACTIONS(197), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(199), 19, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4367] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(347), 1, - anon_sym_DASH_GT, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, - sym_logic_operator, - ACTIONS(203), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(205), 19, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4422] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(352), 1, - anon_sym_LPAREN, - ACTIONS(355), 1, - anon_sym_RBRACE, - ACTIONS(357), 1, - sym_integer, - ACTIONS(366), 1, - anon_sym_LBRACK, - ACTIONS(369), 1, - anon_sym_struct, ACTIONS(372), 1, - anon_sym_none, + sym_identifier, ACTIONS(375), 1, - anon_sym_some, + anon_sym_LPAREN, ACTIONS(378), 1, - anon_sym_STAR, - STATE(46), 1, - sym__function_expression_kind, - STATE(116), 1, - aux_sym_match_repeat1, - STATE(326), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(360), 2, - sym_float, - sym_string, - ACTIONS(363), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(381), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4508] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - ACTIONS(386), 1, anon_sym_RBRACE, - ACTIONS(388), 1, - anon_sym_STAR, - STATE(46), 1, - sym__function_expression_kind, - STATE(116), 1, - aux_sym_match_repeat1, - STATE(326), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4594] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(339), 19, - sym_identifier, + ACTIONS(380), 1, sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - ACTIONS(217), 20, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, + ACTIONS(389), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [4644] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - ACTIONS(388), 1, - anon_sym_STAR, - ACTIONS(390), 1, - anon_sym_RBRACE, - STATE(46), 1, - sym__function_expression_kind, - STATE(116), 1, - aux_sym_match_repeat1, - STATE(326), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4730] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, ACTIONS(392), 1, - sym_identifier, - ACTIONS(394), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(245), 1, - sym_yield, - STATE(345), 1, - sym_function_call, - STATE(346), 1, - sym_expression, - STATE(377), 1, - aux_sym_function_repeat1, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4815] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, + ACTIONS(395), 1, + anon_sym_new, ACTIONS(398), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4898] = 10, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(347), 1, - anon_sym_DASH_GT, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 3, - anon_sym_PLUS, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(325), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(327), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, anon_sym_none, + ACTIONS(401), 1, anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [4959] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(400), 1, - anon_sym_RBRACK, - STATE(46), 1, - sym__function_expression_kind, - STATE(134), 1, - aux_sym_list_repeat1, - STATE(150), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5042] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, - ACTIONS(402), 1, - anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(392), 1, - aux_sym_function_repeat1, - STATE(396), 1, - sym__function_expression_kind, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(355), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5127] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, - ACTIONS(394), 1, - anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(377), 1, - aux_sym_function_repeat1, - STATE(400), 1, - sym__function_expression_kind, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(355), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5212] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, ACTIONS(404), 1, - anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(381), 1, - aux_sym_function_repeat1, - STATE(394), 1, + anon_sym_STAR, + STATE(66), 1, sym__function_expression_kind, - STATE(416), 1, + STATE(120), 1, + aux_sym_match_repeat1, + STATE(340), 1, + sym_expression, + STATE(440), 1, sym_function_expression, - STATE(444), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(383), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(386), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, sym_value, sym_index, - STATE(355), 3, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(407), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -9709,112 +9540,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [5297] = 22, + [4824] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, - ACTIONS(394), 1, - anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(377), 1, - aux_sym_function_repeat1, - STATE(394), 1, - sym__function_expression_kind, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(355), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5382] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(347), 1, + ACTIONS(410), 1, anon_sym_DASH_GT, - ACTIONS(406), 1, - anon_sym_SEMI, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, + STATE(160), 1, sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 3, + STATE(161), 1, + sym_math_operator, + ACTIONS(210), 19, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(325), 7, + ACTIONS(212), 20, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [4880] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(410), 1, + anon_sym_DASH_GT, + STATE(160), 1, + sym_logic_operator, + STATE(161), 1, + sym_math_operator, + ACTIONS(216), 19, + anon_sym_SEMI, anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACE, sym_float, sym_string, anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_PLUS, anon_sym_STAR, - ACTIONS(327), 16, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(218), 20, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -9824,245 +9640,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [5445] = 21, + [4936] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(408), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(133), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5528] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(410), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(132), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5611] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, ACTIONS(412), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5694] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, sym_identifier, ACTIONS(414), 1, - anon_sym_RPAREN, - STATE(46), 1, + anon_sym_RBRACE, + ACTIONS(416), 1, + anon_sym_STAR, + STATE(66), 1, sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, + STATE(120), 1, + aux_sym_match_repeat1, + STATE(340), 1, sym_expression, - STATE(421), 1, + STATE(440), 1, sym_function_expression, - STATE(436), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10072,121 +9707,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [5777] = 21, + [5026] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(412), 1, sym_identifier, ACTIONS(416), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [5860] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, + anon_sym_STAR, ACTIONS(418), 1, - anon_sym_RBRACK, - STATE(46), 1, + anon_sym_RBRACE, + STATE(66), 1, sym__function_expression_kind, - STATE(137), 1, - aux_sym_list_repeat1, - STATE(150), 1, + STATE(120), 1, + aux_sym_match_repeat1, + STATE(340), 1, sym_expression, - STATE(421), 1, + STATE(440), 1, sym_function_expression, - STATE(436), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10196,59 +9774,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [5943] = 21, + [5116] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(396), 1, - sym_identifier, ACTIONS(420), 1, - anon_sym_RBRACK, - STATE(46), 1, + sym_identifier, + ACTIONS(422), 1, + anon_sym_RPAREN, + STATE(66), 1, sym__function_expression_kind, - STATE(146), 1, - aux_sym_list_repeat1, - STATE(150), 1, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(421), 1, + STATE(427), 1, sym_function_expression, - STATE(436), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(92), 2, sym_value, sym_index, - STATE(94), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10258,59 +9839,128 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [6026] = 21, + [5203] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(422), 1, - sym_identifier, - ACTIONS(425), 1, + ACTIONS(174), 1, anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(426), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, + sym_expression, + STATE(383), 1, + aux_sym_function_repeat1, + STATE(419), 1, + sym__function_expression_kind, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(276), 2, + sym_value, + sym_index, + STATE(364), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5292] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, ACTIONS(428), 1, anon_sym_RPAREN, - ACTIONS(430), 1, - sym_integer, - ACTIONS(439), 1, - anon_sym_LBRACK, - ACTIONS(442), 1, - anon_sym_struct, - ACTIONS(445), 1, - anon_sym_none, - ACTIONS(448), 1, - anon_sym_some, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(136), 1, + STATE(139), 1, aux_sym__expression_list, - STATE(151), 1, + STATE(173), 1, sym_expression, - STATE(421), 1, + STATE(427), 1, sym_function_expression, - STATE(436), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(433), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(436), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(92), 2, sym_value, sym_index, - STATE(94), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(451), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10320,308 +9970,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [6109] = 21, + [5379] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(454), 1, - sym_identifier, - ACTIONS(457), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(460), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(469), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(472), 1, - anon_sym_RBRACK, - ACTIONS(474), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(477), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(480), 1, + ACTIONS(156), 1, anon_sym_some, - STATE(46), 1, - sym__function_expression_kind, - STATE(137), 1, - aux_sym_list_repeat1, - STATE(150), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(463), 2, - sym_float, - sym_string, - ACTIONS(466), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(483), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6192] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, + ACTIONS(420), 1, sym_identifier, - ACTIONS(404), 1, + ACTIONS(430), 1, anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(381), 1, - aux_sym_function_repeat1, - STATE(394), 1, - sym__function_expression_kind, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(358), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6277] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(486), 1, - anon_sym_RBRACK, - STATE(46), 1, - sym__function_expression_kind, - STATE(140), 1, - aux_sym_list_repeat1, - STATE(150), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6360] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(488), 1, - anon_sym_RBRACK, - STATE(46), 1, - sym__function_expression_kind, - STATE(137), 1, - aux_sym_list_repeat1, - STATE(150), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6443] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(490), 1, - anon_sym_RPAREN, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, STATE(144), 1, aux_sym__expression_list, - STATE(151), 1, + STATE(173), 1, sym_expression, - STATE(421), 1, + STATE(427), 1, sym_function_expression, - STATE(436), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(92), 2, sym_value, sym_index, - STATE(94), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10631,309 +10035,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [6526] = 22, + [5466] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, + ACTIONS(432), 1, sym_identifier, - ACTIONS(402), 1, - anon_sym_RPAREN, - STATE(245), 1, - sym_yield, - STATE(339), 1, - sym_expression, - STATE(352), 1, - sym_function_call, - STATE(392), 1, - aux_sym_function_repeat1, - STATE(394), 1, - sym__function_expression_kind, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(357), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6611] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, + ACTIONS(435), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(438), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(447), 1, anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, - ACTIONS(402), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(245), 1, - sym_yield, - STATE(338), 1, - sym_function_call, - STATE(346), 1, - sym_expression, - STATE(392), 1, - aux_sym_function_repeat1, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6696] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(492), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6779] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(494), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__function_expression_kind, - STATE(136), 1, - aux_sym__expression_list, - STATE(151), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [6862] = 21, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - ACTIONS(496), 1, + ACTIONS(450), 1, anon_sym_RBRACK, - STATE(46), 1, + ACTIONS(452), 1, + anon_sym_struct, + ACTIONS(455), 1, + anon_sym_new, + ACTIONS(458), 1, + anon_sym_none, + ACTIONS(461), 1, + anon_sym_some, + STATE(66), 1, sym__function_expression_kind, - STATE(137), 1, + STATE(129), 1, aux_sym_list_repeat1, - STATE(150), 1, + STATE(185), 1, sym_expression, - STATE(421), 1, + STATE(427), 1, sym_function_expression, - STATE(436), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(441), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(444), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(92), 2, sym_value, sym_index, - STATE(94), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(464), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -10943,122 +10100,585 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [6945] = 21, + [5553] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(424), 1, sym_identifier, - ACTIONS(388), 1, - anon_sym_STAR, - STATE(46), 1, - sym__function_expression_kind, - STATE(119), 1, - aux_sym_match_repeat1, - STATE(326), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [7028] = 22, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(392), 1, - sym_identifier, - ACTIONS(404), 1, + ACTIONS(426), 1, anon_sym_RPAREN, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(245), 1, + STATE(270), 1, sym_yield, - STATE(336), 1, + STATE(348), 1, sym_function_call, - STATE(346), 1, + STATE(354), 1, sym_expression, - STATE(381), 1, + STATE(383), 1, + aux_sym_function_repeat1, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5642] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(467), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(129), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5729] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(469), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(133), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5816] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(471), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(129), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5903] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(473), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(149), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [5990] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(475), 1, + anon_sym_RPAREN, + STATE(66), 1, + sym__function_expression_kind, + STATE(142), 1, + aux_sym__expression_list, + STATE(173), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [6077] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + ACTIONS(416), 1, + anon_sym_STAR, + STATE(66), 1, + sym__function_expression_kind, + STATE(124), 1, + aux_sym_match_repeat1, + STATE(340), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [6164] = 23, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(477), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, + sym_expression, + STATE(391), 1, + aux_sym_function_repeat1, + STATE(409), 1, + sym__function_expression_kind, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(276), 2, + sym_value, + sym_index, + STATE(364), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [6253] = 23, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(479), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, + sym_expression, + STATE(388), 1, aux_sym_function_repeat1, STATE(416), 1, - sym_function_expression, - STATE(422), 1, + sym__function_expression_kind, + STATE(433), 1, sym_index_expression, - ACTIONS(139), 2, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(276), 2, sym_value, sym_index, - STATE(250), 3, + STATE(364), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11068,59 +10688,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7113] = 21, + [6342] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, + ACTIONS(481), 1, sym_identifier, - ACTIONS(388), 1, - anon_sym_STAR, - STATE(46), 1, + ACTIONS(484), 1, + anon_sym_LPAREN, + ACTIONS(487), 1, + anon_sym_RPAREN, + ACTIONS(489), 1, + sym_integer, + ACTIONS(498), 1, + anon_sym_LBRACK, + ACTIONS(501), 1, + anon_sym_struct, + ACTIONS(504), 1, + anon_sym_new, + ACTIONS(507), 1, + anon_sym_none, + ACTIONS(510), 1, + anon_sym_some, + STATE(66), 1, sym__function_expression_kind, - STATE(117), 1, - aux_sym_match_repeat1, - STATE(326), 1, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(416), 1, + STATE(427), 1, sym_function_expression, - STATE(422), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(492), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(495), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(92), 2, sym_value, sym_index, - STATE(245), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(513), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11130,99 +10753,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7196] = 11, + [6429] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(347), 1, - anon_sym_DASH_GT, - ACTIONS(502), 1, - anon_sym_COMMA, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(500), 5, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(232), 20, + anon_sym_SEMI, anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, sym_float, sym_string, anon_sym_LBRACK, anon_sym_RBRACK, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(498), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [7258] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(347), 1, - anon_sym_DASH_GT, - ACTIONS(508), 1, - anon_sym_COMMA, - STATE(153), 1, - sym_math_operator, - STATE(181), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(506), 5, - anon_sym_LPAREN, - anon_sym_RPAREN, - sym_float, - sym_string, - anon_sym_LBRACK, - ACTIONS(333), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(504), 16, + anon_sym_DASH_GT, + ACTIONS(366), 20, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11232,53 +10800,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7320] = 17, + [6480] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(510), 1, - sym_identifier, - ACTIONS(512), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - STATE(68), 1, - sym_function_expression, - STATE(347), 1, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(477), 1, + anon_sym_RPAREN, + STATE(66), 1, + sym__function_expression_kind, + STATE(270), 1, + sym_yield, + STATE(354), 1, sym_expression, - STATE(415), 1, + STATE(355), 1, + sym_function_call, + STATE(391), 1, + aux_sym_function_repeat1, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, sym_index_expression, - ACTIONS(15), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(17), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(46), 5, - sym_value, - sym_index, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(52), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11288,112 +10866,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7393] = 19, + [6569] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(115), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [7470] = 18, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(514), 1, + ACTIONS(420), 1, sym_identifier, ACTIONS(516), 1, - anon_sym_LPAREN, - STATE(258), 1, - sym_function_expression, - STATE(346), 1, + anon_sym_RPAREN, + STATE(66), 1, + sym__function_expression_kind, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(422), 1, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(284), 2, + STATE(92), 2, sym_value, sym_index, - STATE(247), 3, - sym__function_expression_kind, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11403,55 +10931,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7545] = 19, + [6656] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(156), 1, anon_sym_some, + ACTIONS(420), 1, + sym_identifier, ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, + anon_sym_RPAREN, + STATE(66), 1, sym__function_expression_kind, - STATE(333), 1, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(416), 1, + STATE(427), 1, sym_function_expression, - STATE(444), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, + STATE(92), 2, sym_value, sym_index, - STATE(322), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11461,55 +10996,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7622] = 19, + [6743] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(420), 1, sym_identifier, - STATE(46), 1, + ACTIONS(520), 1, + anon_sym_RPAREN, + STATE(66), 1, sym__function_expression_kind, - STATE(227), 1, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(416), 1, + STATE(427), 1, sym_function_expression, - STATE(435), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(92), 2, sym_value, sym_index, - STATE(245), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11519,55 +11061,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7699] = 19, + [6830] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(424), 1, sym_identifier, - STATE(46), 1, + ACTIONS(479), 1, + anon_sym_RPAREN, + STATE(66), 1, sym__function_expression_kind, - STATE(229), 1, + STATE(270), 1, + sym_yield, + STATE(347), 1, + sym_function_call, + STATE(354), 1, sym_expression, - STATE(416), 1, + STATE(388), 1, + aux_sym_function_repeat1, + STATE(440), 1, sym_function_expression, - STATE(435), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(276), 2, sym_value, sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11577,55 +11127,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7776] = 19, + [6919] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(420), 1, sym_identifier, - STATE(46), 1, + ACTIONS(522), 1, + anon_sym_RPAREN, + STATE(66), 1, sym__function_expression_kind, - STATE(253), 1, + STATE(125), 1, + aux_sym__expression_list, + STATE(173), 1, sym_expression, - STATE(416), 1, + STATE(427), 1, sym_function_expression, - STATE(422), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(92), 2, sym_value, sym_index, - STATE(245), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11635,55 +11192,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7853] = 19, + [7006] = 23, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(424), 1, sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(262), 1, + ACTIONS(479), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, + STATE(388), 1, + aux_sym_function_repeat1, + STATE(419), 1, + sym__function_expression_kind, + STATE(433), 1, sym_index_expression, - ACTIONS(139), 2, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(276), 2, sym_value, sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, + STATE(364), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11693,55 +11258,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [7930] = 19, + [7095] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + ACTIONS(416), 1, + anon_sym_STAR, + STATE(66), 1, sym__function_expression_kind, - STATE(82), 1, + STATE(123), 1, + aux_sym_match_repeat1, + STATE(340), 1, sym_expression, - STATE(421), 1, + STATE(440), 1, sym_function_expression, - STATE(436), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11751,55 +11323,551 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [8007] = 19, + [7182] = 22, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(420), 1, sym_identifier, - STATE(46), 1, + ACTIONS(524), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(129), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7269] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(526), 1, + anon_sym_RPAREN, + STATE(66), 1, + sym__function_expression_kind, + STATE(139), 1, + aux_sym__expression_list, + STATE(173), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7356] = 23, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(426), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, + sym_expression, + STATE(383), 1, + aux_sym_function_repeat1, + STATE(419), 1, + sym__function_expression_kind, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(276), 2, + sym_value, + sym_index, + STATE(367), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7445] = 22, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + ACTIONS(528), 1, + anon_sym_RBRACK, + STATE(66), 1, + sym__function_expression_kind, + STATE(131), 1, + aux_sym_list_repeat1, + STATE(185), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7532] = 23, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(477), 1, + anon_sym_RPAREN, + STATE(270), 1, + sym_yield, + STATE(349), 1, + sym_function_call, + STATE(359), 1, + sym_expression, + STATE(391), 1, + aux_sym_function_repeat1, + STATE(419), 1, + sym__function_expression_kind, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(276), 2, + sym_value, + sym_index, + STATE(366), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7621] = 10, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(410), 1, + anon_sym_DASH_GT, + STATE(160), 1, + sym_logic_operator, + STATE(161), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 3, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(346), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(348), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7683] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(410), 1, + anon_sym_DASH_GT, + ACTIONS(530), 1, + anon_sym_SEMI, + STATE(160), 1, + sym_logic_operator, + STATE(161), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 3, + anon_sym_PLUS, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(346), 7, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(348), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7747] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(324), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [7828] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + STATE(66), 1, sym__function_expression_kind, STATE(83), 1, sym_expression, - STATE(421), 1, + STATE(427), 1, sym_function_expression, - STATE(436), 1, + STATE(432), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(92), 2, sym_value, sym_index, - STATE(94), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -11809,470 +11877,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [8084] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(248), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8161] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(306), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8238] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(307), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8315] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(312), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8392] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(292), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8469] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(293), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8546] = 18, - ACTIONS(3), 1, - sym__comment, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(512), 1, - anon_sym_LPAREN, - ACTIONS(520), 1, - sym_identifier, - STATE(68), 1, - sym_function_expression, - STATE(343), 1, - sym_expression, - STATE(433), 1, - sym_index_expression, - ACTIONS(15), 2, - sym_float, - sym_string, - ACTIONS(17), 2, - anon_sym_true, - anon_sym_false, - STATE(78), 2, - sym_value, - sym_index, - STATE(46), 3, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(52), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(39), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8621] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(396), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(84), 1, - sym_expression, - STATE(421), 1, - sym_function_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [8698] = 19, + [7909] = 20, ACTIONS(3), 1, sym__comment, ACTIONS(7), 1, @@ -12284,18 +11889,20 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(522), 1, + ACTIONS(532), 1, sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(76), 1, + STATE(41), 1, sym_expression, - STATE(433), 1, + STATE(66), 1, + sym__function_expression_kind, + STATE(426), 1, sym_index_expression, - STATE(434), 1, + STATE(445), 1, sym_function_expression, ACTIONS(15), 2, sym_float, @@ -12303,24 +11910,25 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, + STATE(63), 2, sym_function_call, sym_yield, - STATE(48), 3, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, sym__expression_kind, sym_math, sym_logic, - STATE(52), 6, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12330,55 +11938,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [8775] = 19, + [7990] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(534), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(311), 1, + STATE(341), 1, sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, + STATE(433), 1, sym_index_expression, - ACTIONS(139), 2, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, + STATE(330), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12388,11 +11999,310 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [8852] = 19, + [8071] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(7), 1, + ACTIONS(136), 1, anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(121), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8152] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(122), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8233] = 18, + ACTIONS(3), 1, + sym__comment, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(536), 1, + sym_identifier, + ACTIONS(538), 1, + anon_sym_LPAREN, + STATE(107), 1, + sym_function_expression, + STATE(346), 1, + sym_expression, + STATE(432), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(101), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8310] = 18, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(540), 1, + sym_identifier, + ACTIONS(542), 1, + anon_sym_LPAREN, + STATE(255), 1, + sym_function_expression, + STATE(345), 1, + sym_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(271), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8387] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(317), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8468] = 18, + ACTIONS(3), 1, + sym__comment, ACTIONS(13), 1, sym_integer, ACTIONS(19), 1, @@ -12400,43 +12310,46 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(522), 1, + ACTIONS(544), 1, sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(74), 1, - sym_expression, - STATE(433), 1, - sym_index_expression, - STATE(434), 1, + ACTIONS(546), 1, + anon_sym_LPAREN, + STATE(51), 1, sym_function_expression, + STATE(353), 1, + sym_expression, + STATE(426), 1, + sym_index_expression, ACTIONS(15), 2, sym_float, sym_string, ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, - sym_function_call, - sym_yield, - STATE(48), 3, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(52), 6, + STATE(66), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12446,55 +12359,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [8929] = 19, + [8545] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(316), 1, + STATE(250), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(422), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12504,55 +12420,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9006] = 19, + [8626] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(81), 1, + STATE(267), 1, sym_expression, - STATE(412), 1, - sym_index_expression, - STATE(421), 1, + STATE(440), 1, sym_function_expression, - ACTIONS(175), 2, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12562,55 +12481,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9083] = 19, + [8707] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(420), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(309), 1, + STATE(86), 1, sym_expression, - STATE(416), 1, + STATE(427), 1, sym_function_expression, - STATE(422), 1, + STATE(451), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(144), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, + STATE(92), 2, sym_value, sym_index, - STATE(245), 2, + STATE(95), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(108), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(98), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12620,11 +12542,729 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9160] = 19, + [8788] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(7), 1, + ACTIONS(136), 1, anon_sym_LPAREN, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(87), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8869] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(326), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [8950] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(315), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9031] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(342), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9112] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(410), 1, + anon_sym_DASH_GT, + ACTIONS(552), 1, + anon_sym_COMMA, + STATE(160), 1, + sym_logic_operator, + STATE(161), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(550), 5, + anon_sym_LPAREN, + anon_sym_RPAREN, + sym_float, + sym_string, + anon_sym_LBRACK, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(548), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9175] = 19, + ACTIONS(3), 1, + sym__comment, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(538), 1, + anon_sym_LPAREN, + ACTIONS(554), 1, + sym_identifier, + STATE(107), 1, + sym_function_expression, + STATE(358), 1, + sym_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(140), 2, + sym_value, + sym_index, + STATE(101), 3, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9254] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(336), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9335] = 18, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(540), 1, + sym_identifier, + ACTIONS(542), 1, + anon_sym_LPAREN, + STATE(255), 1, + sym_function_expression, + STATE(360), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(271), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9412] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(325), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9493] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(272), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9574] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(303), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9655] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(322), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [9736] = 18, + ACTIONS(3), 1, + sym__comment, ACTIONS(13), 1, sym_integer, ACTIONS(19), 1, @@ -12632,43 +13272,46 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(522), 1, + ACTIONS(544), 1, sym_identifier, - STATE(44), 1, - sym_expression, - STATE(46), 1, - sym__function_expression_kind, - STATE(433), 1, - sym_index_expression, - STATE(434), 1, + ACTIONS(546), 1, + anon_sym_LPAREN, + STATE(51), 1, sym_function_expression, + STATE(351), 1, + sym_expression, + STATE(435), 1, + sym_index_expression, ACTIONS(15), 2, sym_float, sym_string, ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, - sym_function_call, - sym_yield, - STATE(48), 3, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(52), 6, + STATE(66), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12678,55 +13321,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9237] = 19, + [9813] = 19, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, - anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(542), 1, + anon_sym_LPAREN, + ACTIONS(556), 1, sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(79), 1, - sym_expression, - STATE(412), 1, - sym_index_expression, - STATE(421), 1, + STATE(255), 1, sym_function_expression, - ACTIONS(175), 2, + STATE(354), 1, + sym_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, + STATE(299), 2, sym_value, sym_index, - STATE(94), 2, - sym_function_call, - sym_yield, - STATE(93), 3, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(271), 3, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12736,55 +13381,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9314] = 19, + [9892] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(518), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, STATE(302), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(435), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12794,7 +13442,118 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9391] = 19, + [9973] = 18, + ACTIONS(3), 1, + sym__comment, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(536), 1, + sym_identifier, + ACTIONS(538), 1, + anon_sym_LPAREN, + STATE(107), 1, + sym_function_expression, + STATE(362), 1, + sym_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(101), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10050] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(410), 1, + anon_sym_DASH_GT, + ACTIONS(562), 1, + anon_sym_COMMA, + STATE(160), 1, + sym_logic_operator, + STATE(161), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(560), 5, + anon_sym_LPAREN, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_RBRACK, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(558), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10113] = 20, ACTIONS(3), 1, sym__comment, ACTIONS(7), 1, @@ -12806,18 +13565,20 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(522), 1, + ACTIONS(532), 1, sym_identifier, STATE(43), 1, sym_expression, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(433), 1, + STATE(435), 1, sym_index_expression, - STATE(434), 1, + STATE(445), 1, sym_function_expression, ACTIONS(15), 2, sym_float, @@ -12825,24 +13586,25 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, + STATE(63), 2, sym_function_call, sym_yield, - STATE(48), 3, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, sym__expression_kind, sym_math, sym_logic, - STATE(52), 6, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12852,9 +13614,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9468] = 17, + [10194] = 20, ACTIONS(3), 1, sym__comment, + ACTIONS(7), 1, + anon_sym_LPAREN, ACTIONS(13), 1, sym_integer, ACTIONS(19), 1, @@ -12862,43 +13626,349 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(510), 1, + ACTIONS(532), 1, sym_identifier, - ACTIONS(512), 1, - anon_sym_LPAREN, - STATE(68), 1, + STATE(42), 1, + sym_expression, + STATE(66), 1, + sym__function_expression_kind, + STATE(435), 1, + sym_index_expression, + STATE(445), 1, sym_function_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(63), 2, + sym_function_call, + sym_yield, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10275] = 19, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(542), 1, + anon_sym_LPAREN, + ACTIONS(556), 1, + sym_identifier, + STATE(255), 1, + sym_function_expression, + STATE(356), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(299), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(271), 3, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10354] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(339), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10435] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(333), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10516] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, STATE(344), 1, sym_expression, STATE(433), 1, sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10597] = 19, + ACTIONS(3), 1, + sym__comment, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(546), 1, + anon_sym_LPAREN, + ACTIONS(564), 1, + sym_identifier, + STATE(51), 1, + sym_function_expression, + STATE(352), 1, + sym_expression, + STATE(435), 1, + sym_index_expression, ACTIONS(15), 2, sym_float, sym_string, ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(46), 5, + STATE(85), 2, sym_value, sym_index, + STATE(66), 3, sym__function_expression_kind, sym_function_call, sym_yield, - STATE(52), 6, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12908,55 +13978,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9541] = 19, + [10676] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(167), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(173), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(179), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(181), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(183), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(185), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(396), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(114), 1, + STATE(318), 1, sym_expression, - STATE(421), 1, + STATE(440), 1, sym_function_expression, - STATE(436), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(175), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(177), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(91), 2, - sym_value, - sym_index, - STATE(94), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(93), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(88), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(195), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -12966,55 +14039,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9618] = 19, + [10757] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(518), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(330), 1, + STATE(316), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(444), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -13024,55 +14100,424 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9695] = 19, + [10838] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(142), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(150), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(156), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(420), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, + sym__function_expression_kind, + STATE(88), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(451), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [10919] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(7), 1, + anon_sym_LPAREN, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(532), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(79), 1, + sym_expression, + STATE(435), 1, + sym_index_expression, + STATE(445), 1, + sym_function_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(63), 2, + sym_function_call, + sym_yield, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11000] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(7), 1, + anon_sym_LPAREN, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(532), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(78), 1, + sym_expression, + STATE(435), 1, + sym_index_expression, + STATE(445), 1, + sym_function_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(63), 2, + sym_function_call, + sym_yield, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11081] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(7), 1, + anon_sym_LPAREN, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(532), 1, + sym_identifier, + STATE(44), 1, + sym_expression, + STATE(66), 1, + sym__function_expression_kind, + STATE(435), 1, + sym_index_expression, + STATE(445), 1, + sym_function_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(63), 2, + sym_function_call, + sym_yield, + STATE(70), 2, + sym_value, + sym_index, + STATE(47), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11162] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(245), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(441), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11243] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, + sym__function_expression_kind, + STATE(319), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11324] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, sym__function_expression_kind, STATE(314), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(422), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -13082,112 +14527,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9772] = 18, + [11405] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(514), 1, - sym_identifier, - ACTIONS(516), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - STATE(258), 1, - sym_function_expression, - STATE(337), 1, - sym_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(284), 2, - sym_value, - sym_index, - STATE(247), 3, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [9847] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(325), 1, + STATE(246), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(444), 1, + STATE(441), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -13197,55 +14588,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [9924] = 19, + [11486] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(518), 1, + ACTIONS(412), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(327), 1, + STATE(320), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(444), 1, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, + STATE(270), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -13255,55 +14649,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [10001] = 19, + [11567] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(534), 1, sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, - STATE(315), 1, + STATE(309), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(422), 1, + STATE(441), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, + STATE(330), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -13313,746 +14710,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [10078] = 19, + [11648] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(131), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(137), 1, + ACTIONS(180), 1, sym_integer, - ACTIONS(143), 1, + ACTIONS(186), 1, anon_sym_LBRACK, - ACTIONS(145), 1, + ACTIONS(188), 1, anon_sym_struct, - ACTIONS(147), 1, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, anon_sym_none, - ACTIONS(149), 1, + ACTIONS(194), 1, anon_sym_some, - ACTIONS(384), 1, + ACTIONS(534), 1, sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(331), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10155] = 18, - ACTIONS(3), 1, - sym__comment, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(524), 1, - sym_identifier, - ACTIONS(526), 1, - anon_sym_LPAREN, - STATE(100), 1, - sym_function_expression, - STATE(350), 1, - sym_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(118), 2, - sym_value, - sym_index, - STATE(89), 3, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10230] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(303), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(435), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10307] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(7), 1, - anon_sym_LPAREN, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(522), 1, - sym_identifier, - STATE(42), 1, - sym_expression, - STATE(46), 1, - sym__function_expression_kind, - STATE(433), 1, - sym_index_expression, - STATE(434), 1, - sym_function_expression, - ACTIONS(15), 2, - sym_float, - sym_string, - ACTIONS(17), 2, - anon_sym_true, - anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, - sym_function_call, - sym_yield, - STATE(48), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(52), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(39), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10384] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(305), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10461] = 17, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(516), 1, - anon_sym_LPAREN, - ACTIONS(528), 1, - sym_identifier, - STATE(258), 1, - sym_function_expression, - STATE(341), 1, - sym_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(247), 5, - sym_value, - sym_index, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10534] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(7), 1, - anon_sym_LPAREN, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(522), 1, - sym_identifier, - STATE(39), 1, - sym_expression, - STATE(46), 1, - sym__function_expression_kind, - STATE(415), 1, - sym_index_expression, - STATE(434), 1, - sym_function_expression, - ACTIONS(15), 2, - sym_float, - sym_string, - ACTIONS(17), 2, - anon_sym_true, - anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, - sym_function_call, - sym_yield, - STATE(48), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(52), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(39), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10611] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(308), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10688] = 17, - ACTIONS(3), 1, - sym__comment, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(526), 1, - anon_sym_LPAREN, - ACTIONS(530), 1, - sym_identifier, - STATE(100), 1, - sym_function_expression, - STATE(351), 1, - sym_expression, - STATE(436), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(89), 5, - sym_value, - sym_index, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10761] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(7), 1, - anon_sym_LPAREN, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(522), 1, - sym_identifier, - STATE(40), 1, - sym_expression, - STATE(46), 1, - sym__function_expression_kind, - STATE(415), 1, - sym_index_expression, - STATE(434), 1, - sym_function_expression, - ACTIONS(15), 2, - sym_float, - sym_string, - ACTIONS(17), 2, - anon_sym_true, - anon_sym_false, - STATE(54), 2, - sym_value, - sym_index, - STATE(59), 2, - sym_function_call, - sym_yield, - STATE(48), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(52), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(39), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10838] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(332), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(444), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10915] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(317), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [10992] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(518), 1, - sym_identifier, - STATE(46), 1, + STATE(66), 1, sym__function_expression_kind, STATE(310), 1, sym_expression, - STATE(416), 1, + STATE(440), 1, sym_function_expression, - STATE(444), 1, + STATE(441), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(318), 2, - sym_value, - sym_index, - STATE(322), 2, + STATE(330), 2, sym_function_call, sym_yield, - STATE(250), 3, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(260), 6, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -14062,1528 +14771,119 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [11069] = 17, + [11729] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(526), 1, + ACTIONS(174), 1, anon_sym_LPAREN, - ACTIONS(530), 1, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, sym_identifier, - STATE(100), 1, - sym_function_expression, - STATE(354), 1, - sym_expression, - STATE(412), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(89), 5, - sym_value, - sym_index, + STATE(66), 1, sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11142] = 17, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(516), 1, - anon_sym_LPAREN, - ACTIONS(528), 1, - sym_identifier, - STATE(258), 1, - sym_function_expression, - STATE(340), 1, + STATE(335), 1, sym_expression, - STATE(435), 1, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(250), 3, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, + sym_value, + sym_index, + STATE(260), 3, sym__expression_kind, sym_math, sym_logic, - STATE(247), 5, - sym_value, - sym_index, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [11810] = 20, + ACTIONS(3), 1, + sym__comment, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(412), 1, + sym_identifier, + STATE(66), 1, sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11215] = 17, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(516), 1, - anon_sym_LPAREN, - ACTIONS(528), 1, - sym_identifier, - STATE(258), 1, - sym_function_expression, - STATE(353), 1, - sym_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(247), 5, - sym_value, - sym_index, - sym__function_expression_kind, - sym_function_call, - sym_yield, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11288] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(329), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11365] = 19, - ACTIONS(3), 1, - sym__comment, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(384), 1, - sym_identifier, - STATE(46), 1, - sym__function_expression_kind, - STATE(313), 1, - sym_expression, - STATE(416), 1, - sym_function_expression, - STATE(422), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(239), 2, - sym_value, - sym_index, - STATE(245), 2, - sym_function_call, - sym_yield, - STATE(250), 3, - sym__expression_kind, - sym_math, - sym_logic, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11442] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(536), 1, - anon_sym_elseif, - ACTIONS(538), 1, - anon_sym_else, - STATE(214), 1, - sym_else, - STATE(208), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(532), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(534), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11494] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(536), 1, - anon_sym_elseif, - ACTIONS(538), 1, - anon_sym_else, - STATE(225), 1, - sym_else, - STATE(206), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(540), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(542), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11546] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(548), 1, - anon_sym_elseif, - STATE(208), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(544), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(546), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11593] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(255), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_elseif, - anon_sym_asyncfor, - ACTIONS(257), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11634] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(551), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_elseif, - anon_sym_asyncfor, - ACTIONS(553), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11675] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(295), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_elseif, - anon_sym_asyncfor, - ACTIONS(297), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11716] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(319), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_elseif, - anon_sym_asyncfor, - ACTIONS(321), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11757] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(555), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_elseif, - anon_sym_asyncfor, - ACTIONS(557), 23, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_else, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11798] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(559), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(561), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11837] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(563), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(565), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11876] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(567), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(569), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11915] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(571), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(573), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11954] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(575), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(577), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [11993] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(579), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(581), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12032] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(583), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(585), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12071] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(587), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(589), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12110] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(591), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(593), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12149] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(325), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(327), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12188] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(337), 1, - anon_sym_SEMI, - ACTIONS(325), 8, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(327), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12229] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(532), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(534), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12268] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(595), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_asyncfor, - ACTIONS(597), 22, - anon_sym_async, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_if, - anon_sym_match, - anon_sym_while, - anon_sym_for, - anon_sym_return, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12307] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(599), 1, - anon_sym_DASH_GT, - STATE(156), 1, - sym_logic_operator, - STATE(157), 1, - sym_math_operator, - ACTIONS(199), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(197), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - [12350] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(601), 1, - sym_identifier, - ACTIONS(603), 1, - anon_sym_LPAREN, - STATE(102), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(85), 2, - sym_value, - sym_index, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12409] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(599), 1, - anon_sym_DASH_GT, - STATE(156), 1, - sym_logic_operator, - STATE(157), 1, - sym_math_operator, - ACTIONS(205), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(203), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - [12452] = 5, - ACTIONS(3), 1, - sym__comment, - STATE(156), 1, - sym_logic_operator, - STATE(157), 1, - sym_math_operator, - ACTIONS(209), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(207), 20, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [12493] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(605), 1, - sym_identifier, - ACTIONS(607), 1, - anon_sym_LPAREN, - STATE(264), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(241), 2, - sym_value, - sym_index, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12552] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(609), 1, - anon_sym_elseif, - ACTIONS(611), 1, - anon_sym_else, - STATE(279), 1, - sym_else, - STATE(243), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(532), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(534), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12597] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(609), 1, - anon_sym_elseif, - ACTIONS(611), 1, - anon_sym_else, - STATE(289), 1, - sym_else, - STATE(232), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(540), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(542), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12642] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(605), 1, - sym_identifier, - ACTIONS(607), 1, - anon_sym_LPAREN, - STATE(270), 1, - sym_index_expression, - ACTIONS(139), 2, - sym_float, - sym_string, - ACTIONS(141), 2, - anon_sym_true, - anon_sym_false, - STATE(241), 2, - sym_value, - sym_index, - STATE(260), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(163), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12701] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(13), 1, - sym_integer, - ACTIONS(19), 1, - anon_sym_LBRACK, - ACTIONS(21), 1, - anon_sym_struct, - ACTIONS(23), 1, - anon_sym_none, - ACTIONS(25), 1, - anon_sym_some, - ACTIONS(613), 1, - sym_identifier, - ACTIONS(615), 1, - anon_sym_LPAREN, - STATE(61), 1, - sym_index_expression, - ACTIONS(15), 2, - sym_float, - sym_string, - ACTIONS(17), 2, - anon_sym_true, - anon_sym_false, - STATE(62), 2, - sym_value, - sym_index, - STATE(52), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(39), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12760] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(173), 1, - sym_integer, - ACTIONS(179), 1, - anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_struct, - ACTIONS(183), 1, - anon_sym_none, - ACTIONS(185), 1, - anon_sym_some, - ACTIONS(601), 1, - sym_identifier, - ACTIONS(603), 1, - anon_sym_LPAREN, - STATE(101), 1, - sym_index_expression, - ACTIONS(175), 2, - sym_float, - sym_string, - ACTIONS(177), 2, - anon_sym_true, - anon_sym_false, - STATE(85), 2, - sym_value, - sym_index, - STATE(88), 6, - sym_boolean, - sym_list, - sym_structure, - sym_option, - sym_function, - sym_built_in_value, - ACTIONS(195), 9, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [12819] = 14, - ACTIONS(3), 1, - sym__comment, - ACTIONS(137), 1, - sym_integer, - ACTIONS(143), 1, - anon_sym_LBRACK, - ACTIONS(145), 1, - anon_sym_struct, - ACTIONS(147), 1, - anon_sym_none, - ACTIONS(149), 1, - anon_sym_some, - ACTIONS(605), 1, - sym_identifier, - ACTIONS(607), 1, - anon_sym_LPAREN, STATE(323), 1, + sym_expression, + STATE(440), 1, + sym_function_expression, + STATE(455), 1, sym_index_expression, - ACTIONS(139), 2, + ACTIONS(182), 2, sym_float, sym_string, - ACTIONS(141), 2, + ACTIONS(184), 2, anon_sym_true, anon_sym_false, - STATE(241), 2, + STATE(270), 2, + sym_function_call, + sym_yield, + STATE(276), 2, sym_value, sym_index, - STATE(260), 6, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(163), 9, + ACTIONS(204), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -15593,9 +14893,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [12878] = 14, + [11891] = 20, ACTIONS(3), 1, sym__comment, + ACTIONS(7), 1, + anon_sym_LPAREN, ACTIONS(13), 1, sym_integer, ACTIONS(19), 1, @@ -15603,32 +14905,46 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_struct, ACTIONS(23), 1, - anon_sym_none, + anon_sym_new, ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, anon_sym_some, - ACTIONS(613), 1, + ACTIONS(532), 1, sym_identifier, - ACTIONS(615), 1, - anon_sym_LPAREN, - STATE(50), 1, + STATE(40), 1, + sym_expression, + STATE(66), 1, + sym__function_expression_kind, + STATE(426), 1, sym_index_expression, + STATE(445), 1, + sym_function_expression, ACTIONS(15), 2, sym_float, sym_string, ACTIONS(17), 2, anon_sym_true, anon_sym_false, - STATE(62), 2, + STATE(63), 2, + sym_function_call, + sym_yield, + STATE(70), 2, sym_value, sym_index, - STATE(52), 6, + STATE(47), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(55), 7, sym_boolean, sym_list, + sym_structure_definition, sym_structure, sym_option, sym_function, sym_built_in_value, - ACTIONS(39), 9, + ACTIONS(41), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -15638,166 +14954,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [12937] = 5, + [11972] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(217), 2, + ACTIONS(136), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - ACTIONS(215), 7, - anon_sym_async, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(420), 1, sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 18, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [12977] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(289), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(287), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13013] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(277), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(221), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13049] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(293), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(291), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13085] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(617), 1, - anon_sym_elseif, - STATE(243), 2, - sym_else_if, - aux_sym_if_else_repeat1, - ACTIONS(544), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, + STATE(66), 1, + sym__function_expression_kind, + STATE(81), 1, + sym_expression, + STATE(427), 1, + sym_function_expression, + STATE(432), 1, + sym_index_expression, + ACTIONS(144), 2, sym_float, sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(546), 17, - sym_identifier, - sym_integer, + ACTIONS(146), 2, anon_sym_true, anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_else, + STATE(92), 2, + sym_value, + sym_index, + STATE(95), 2, + sym_function_call, + sym_yield, + STATE(108), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, anon_sym_args, anon_sym_assert_equal, anon_sym_env, @@ -15807,590 +15015,156 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [13125] = 3, + [12053] = 20, ACTIONS(3), 1, sym__comment, - ACTIONS(321), 7, - anon_sym_async, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(534), 1, sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(319), 21, + STATE(66), 1, + sym__function_expression_kind, + STATE(321), 1, + sym_expression, + STATE(433), 1, + sym_index_expression, + STATE(440), 1, + sym_function_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(330), 2, + sym_function_call, + sym_yield, + STATE(332), 2, + sym_value, + sym_index, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12134] = 18, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(540), 1, + sym_identifier, + ACTIONS(542), 1, + anon_sym_LPAREN, + STATE(255), 1, + sym_function_expression, + STATE(363), 1, + sym_expression, + STATE(441), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(260), 3, + sym__expression_kind, + sym_math, + sym_logic, + STATE(271), 5, + sym_value, + sym_index, + sym__function_expression_kind, + sym_function_call, + sym_yield, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12211] = 7, + ACTIONS(3), 1, + sym__comment, + ACTIONS(570), 1, + anon_sym_elseif, + ACTIONS(572), 1, + anon_sym_else, + STATE(229), 1, + sym_else, + STATE(214), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(566), 9, + ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13161] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 2, - anon_sym_LPAREN, - anon_sym_RPAREN, - ACTIONS(215), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 19, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13199] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(233), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(231), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13235] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(229), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(227), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13271] = 5, - ACTIONS(3), 1, - sym__comment, - STATE(158), 1, - sym_logic_operator, - STATE(159), 1, - sym_math_operator, - ACTIONS(209), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(207), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13311] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(285), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(283), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13347] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(237), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(235), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13383] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(297), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(295), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13419] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(257), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(255), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13455] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(620), 1, - anon_sym_DASH_GT, - STATE(158), 1, - sym_logic_operator, - STATE(159), 1, - sym_math_operator, - ACTIONS(199), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(197), 18, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - [13497] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(305), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(303), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13533] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(269), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(267), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13569] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(317), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(315), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13605] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(265), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(263), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13641] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(301), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(299), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13677] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(273), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(271), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13713] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(253), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(251), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13749] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(624), 6, - anon_sym_LPAREN, - anon_sym_LBRACE, sym_float, sym_string, anon_sym_LBRACK, anon_sym_asyncfor, - ACTIONS(622), 22, + ACTIONS(568), 23, anon_sym_async, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_if, @@ -16407,16 +15181,1194 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [13785] = 6, + [12264] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(620), 1, - anon_sym_DASH_GT, - STATE(158), 1, + ACTIONS(570), 1, + anon_sym_elseif, + ACTIONS(572), 1, + anon_sym_else, + STATE(221), 1, + sym_else, + STATE(212), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(574), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(576), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12317] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(582), 1, + anon_sym_elseif, + STATE(214), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(578), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(580), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12365] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(274), 10, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_elseif, + anon_sym_asyncfor, + ACTIONS(276), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12407] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(585), 10, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_elseif, + anon_sym_asyncfor, + ACTIONS(587), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12449] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(589), 10, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_elseif, + anon_sym_asyncfor, + ACTIONS(591), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12491] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(326), 10, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_elseif, + anon_sym_asyncfor, + ACTIONS(328), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12533] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(282), 10, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_elseif, + anon_sym_asyncfor, + ACTIONS(284), 24, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_else, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12575] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(593), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(595), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12615] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(566), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(568), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12655] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(597), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(599), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12695] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(601), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(603), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12735] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(605), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(607), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12775] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(609), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(611), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12815] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(613), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(615), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12855] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(617), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(619), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12895] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(346), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(348), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12935] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(621), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(623), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [12975] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(350), 1, + anon_sym_SEMI, + ACTIONS(346), 8, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(348), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13017] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(625), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(627), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13057] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(629), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(631), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13097] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(633), 1, + sym_identifier, + ACTIONS(635), 1, + anon_sym_LPAREN, + STATE(274), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(253), 2, + sym_value, + sym_index, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13160] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(637), 1, + sym_identifier, + ACTIONS(639), 1, + anon_sym_LPAREN, + STATE(53), 1, + sym_index_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(71), 2, + sym_value, + sym_index, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13223] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(641), 1, + sym_identifier, + ACTIONS(643), 1, + anon_sym_LPAREN, + STATE(91), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(111), 2, + sym_value, + sym_index, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13286] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(633), 1, + sym_identifier, + ACTIONS(635), 1, + anon_sym_LPAREN, + STATE(281), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(253), 2, + sym_value, + sym_index, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13349] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(180), 1, + sym_integer, + ACTIONS(186), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_struct, + ACTIONS(190), 1, + anon_sym_new, + ACTIONS(192), 1, + anon_sym_none, + ACTIONS(194), 1, + anon_sym_some, + ACTIONS(633), 1, + sym_identifier, + ACTIONS(635), 1, + anon_sym_LPAREN, + STATE(327), 1, + sym_index_expression, + ACTIONS(182), 2, + sym_float, + sym_string, + ACTIONS(184), 2, + anon_sym_true, + anon_sym_false, + STATE(253), 2, + sym_value, + sym_index, + STATE(273), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(204), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13412] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(13), 1, + sym_integer, + ACTIONS(19), 1, + anon_sym_LBRACK, + ACTIONS(21), 1, + anon_sym_struct, + ACTIONS(23), 1, + anon_sym_new, + ACTIONS(25), 1, + anon_sym_none, + ACTIONS(27), 1, + anon_sym_some, + ACTIONS(637), 1, + sym_identifier, + ACTIONS(639), 1, + anon_sym_LPAREN, + STATE(69), 1, + sym_index_expression, + ACTIONS(15), 2, + sym_float, + sym_string, + ACTIONS(17), 2, + anon_sym_true, + anon_sym_false, + STATE(71), 2, + sym_value, + sym_index, + STATE(55), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(41), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13475] = 15, + ACTIONS(3), 1, + sym__comment, + ACTIONS(142), 1, + sym_integer, + ACTIONS(148), 1, + anon_sym_LBRACK, + ACTIONS(150), 1, + anon_sym_struct, + ACTIONS(152), 1, + anon_sym_new, + ACTIONS(154), 1, + anon_sym_none, + ACTIONS(156), 1, + anon_sym_some, + ACTIONS(641), 1, + sym_identifier, + ACTIONS(643), 1, + anon_sym_LPAREN, + STATE(112), 1, + sym_index_expression, + ACTIONS(144), 2, + sym_float, + sym_string, + ACTIONS(146), 2, + anon_sym_true, + anon_sym_false, + STATE(111), 2, + sym_value, + sym_index, + STATE(98), 7, + sym_boolean, + sym_list, + sym_structure_definition, + sym_structure, + sym_option, + sym_function, + sym_built_in_value, + ACTIONS(170), 9, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13538] = 7, + ACTIONS(3), 1, + sym__comment, + ACTIONS(645), 1, + anon_sym_elseif, + ACTIONS(647), 1, + anon_sym_else, + STATE(294), 1, + sym_else, + STATE(243), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(566), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(568), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13584] = 7, + ACTIONS(3), 1, + sym__comment, + ACTIONS(645), 1, + anon_sym_elseif, + ACTIONS(647), 1, + anon_sym_else, + STATE(296), 1, + sym_else, + STATE(240), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(574), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(576), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13630] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(199), 1, sym_logic_operator, - STATE(159), 1, + STATE(202), 1, sym_math_operator, - ACTIONS(205), 7, + ACTIONS(208), 7, anon_sym_async, sym_identifier, anon_sym_EQ, @@ -16424,44 +16376,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(203), 18, + ACTIONS(206), 20, anon_sym_SEMI, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - [13827] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(241), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(239), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, anon_sym_DOT_DOT, anon_sym_STAR, anon_sym_SLASH, @@ -16476,241 +16397,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_EQ, anon_sym_EQ_GT, anon_sym_DASH_GT, - [13863] = 3, + [13671] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(245), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(243), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13899] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(281), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(279), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13935] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(249), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(247), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [13971] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(309), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(307), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [14007] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(261), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(259), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [14043] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(313), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(311), 21, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [14079] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(626), 1, - anon_sym_DOT_DOT, - ACTIONS(245), 7, - anon_sym_async, - sym_identifier, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(243), 19, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COLON, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_EQ_GT, - anon_sym_DASH_GT, - [14116] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(319), 9, + ACTIONS(649), 1, + anon_sym_elseif, + STATE(243), 2, + sym_else_if, + aux_sym_if_else_repeat1, + ACTIONS(578), 8, anon_sym_SEMI, anon_sym_LPAREN, anon_sym_COMMA, @@ -16719,13 +16414,13 @@ static const uint16_t ts_small_parse_table[] = { sym_string, anon_sym_LBRACK, anon_sym_STAR, - anon_sym_elseif, - ACTIONS(321), 17, + ACTIONS(580), 18, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_else, @@ -16738,153 +16433,1761 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [14150] = 3, + [13712] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(295), 9, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_elseif, - ACTIONS(297), 17, + ACTIONS(652), 1, + anon_sym_LBRACE, + STATE(258), 1, + sym_structure_instantiator, + ACTIONS(224), 7, + anon_sym_async, sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_else, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14184] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(551), 9, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_elseif, - ACTIONS(553), 17, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_else, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14218] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(555), 9, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_elseif, - ACTIONS(557), 17, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_else, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14252] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(255), 9, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - anon_sym_elseif, - ACTIONS(257), 17, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_else, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14286] = 10, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(219), 1, anon_sym_EQ, - ACTIONS(221), 1, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(222), 20, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_COLON, - ACTIONS(223), 1, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [13753] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(654), 1, + anon_sym_DASH_GT, + STATE(199), 1, + sym_logic_operator, + STATE(202), 1, + sym_math_operator, + ACTIONS(212), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(210), 19, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + [13796] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(654), 1, + anon_sym_DASH_GT, + STATE(199), 1, + sym_logic_operator, + STATE(202), 1, + sym_math_operator, + ACTIONS(218), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(216), 19, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + [13839] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(658), 6, + anon_sym_LPAREN, + anon_sym_LBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_asyncfor, + ACTIONS(656), 23, + anon_sym_async, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_if, + anon_sym_match, + anon_sym_while, + anon_sym_for, + anon_sym_return, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [13876] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(288), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(286), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [13912] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(276), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(274), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [13948] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(660), 1, + anon_sym_DASH_GT, + STATE(166), 1, + sym_logic_operator, + STATE(167), 1, + sym_math_operator, + ACTIONS(212), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(210), 18, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + [13990] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(296), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(294), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14026] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(320), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(318), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14062] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(324), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(236), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14098] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(268), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(266), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14134] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(256), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(254), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14170] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(328), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(326), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14206] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(308), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(306), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14242] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(280), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(278), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14278] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(260), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(258), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14314] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(244), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(242), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14350] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(284), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(282), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14386] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(304), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(302), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14422] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(340), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(338), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14458] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(336), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(334), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14494] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(332), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(330), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14530] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(292), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(290), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14566] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(660), 1, + anon_sym_DASH_GT, + STATE(166), 1, + sym_logic_operator, + STATE(167), 1, + sym_math_operator, + ACTIONS(218), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(216), 18, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + [14608] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(248), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(246), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14644] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(252), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(250), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14680] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 2, + anon_sym_LPAREN, + anon_sym_RPAREN, + ACTIONS(230), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 19, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14718] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(312), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(310), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14754] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(166), 1, + sym_logic_operator, + STATE(167), 1, + sym_math_operator, + ACTIONS(208), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(206), 19, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14794] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(272), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(270), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14830] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(264), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(262), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14866] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(300), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(298), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14902] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(232), 2, + anon_sym_LPAREN, + anon_sym_RPAREN, + ACTIONS(230), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 18, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14942] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(344), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(342), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [14978] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(316), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(314), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [15014] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(282), 9, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_elseif, + ACTIONS(284), 18, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_else, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15049] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(326), 9, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_elseif, + ACTIONS(328), 18, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_else, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15084] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(662), 1, + anon_sym_DOT_DOT, + ACTIONS(264), 7, + anon_sym_async, + sym_identifier, + anon_sym_EQ, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(262), 19, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [15121] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(274), 9, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_elseif, + ACTIONS(276), 18, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_else, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15156] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(585), 9, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_elseif, + ACTIONS(587), 18, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_else, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15191] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(589), 9, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_elseif, + ACTIONS(591), 18, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_else, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15226] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(593), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(595), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15259] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(617), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(619), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15292] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(629), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(631), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15325] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(609), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(611), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15358] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(625), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(627), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15391] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(601), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(603), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15424] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(346), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(348), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15457] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(613), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(615), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15490] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(605), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(607), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15523] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(621), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(623), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15556] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(530), 1, + anon_sym_SEMI, + ACTIONS(346), 7, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(348), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15591] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(566), 8, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(568), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15624] = 10, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(234), 1, + anon_sym_EQ, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(238), 1, anon_sym_LT, STATE(33), 1, sym_assignment_operator, - STATE(371), 1, + STATE(377), 1, sym_type_definition, - ACTIONS(225), 2, + ACTIONS(240), 2, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, - ACTIONS(215), 3, + ACTIONS(230), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_GT, - ACTIONS(213), 14, + ACTIONS(228), 14, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, @@ -16899,26 +18202,86 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [14333] = 8, + [15671] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(217), 1, + ACTIONS(597), 8, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(219), 1, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_float, + sym_string, + anon_sym_LBRACK, + anon_sym_STAR, + ACTIONS(599), 17, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_struct, + anon_sym_new, + anon_sym_none, + anon_sym_some, + anon_sym_args, + anon_sym_assert_equal, + anon_sym_env, + anon_sym_fs, + anon_sym_json, + anon_sym_length, + anon_sym_output, + anon_sym_random, + anon_sym_string, + [15704] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(366), 5, + anon_sym_async, + sym_identifier, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(232), 18, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_EQ_GT, + anon_sym_DASH_GT, + [15738] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(234), 1, anon_sym_EQ, - ACTIONS(221), 1, + ACTIONS(236), 1, anon_sym_COLON, - STATE(29), 1, + STATE(27), 1, sym_assignment_operator, - ACTIONS(225), 2, + ACTIONS(240), 2, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, - ACTIONS(215), 4, + ACTIONS(230), 4, anon_sym_PLUS, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(213), 14, + ACTIONS(228), 14, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, @@ -16933,24 +18296,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [14375] = 3, + [15780] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(325), 8, - anon_sym_SEMI, - anon_sym_LPAREN, + ACTIONS(668), 1, anon_sym_COMMA, + ACTIONS(666), 6, + anon_sym_LPAREN, anon_sym_RBRACE, sym_float, sym_string, anon_sym_LBRACK, anon_sym_STAR, - ACTIONS(327), 16, + ACTIONS(664), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -16962,401 +18326,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [14407] = 3, + [15814] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(559), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(561), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14439] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(406), 1, - anon_sym_SEMI, - ACTIONS(325), 7, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(327), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14473] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(575), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(577), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14505] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(567), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(569), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14537] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(563), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(565), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14569] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(339), 5, - anon_sym_async, - sym_identifier, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(217), 18, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ_GT, + ACTIONS(670), 1, anon_sym_DASH_GT, - [14603] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(571), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(573), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14635] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(587), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(589), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14667] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(591), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(593), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14699] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(595), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(597), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14731] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(532), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(534), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14763] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(583), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(585), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14795] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(579), 8, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(581), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14827] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(628), 1, - anon_sym_DASH_GT, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - ACTIONS(199), 5, + ACTIONS(218), 5, anon_sym_async, sym_identifier, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(197), 15, + ACTIONS(216), 15, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LBRACE, @@ -17372,22 +18357,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ_GT, - [14864] = 6, + [15851] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(628), 1, + ACTIONS(670), 1, anon_sym_DASH_GT, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - ACTIONS(205), 5, + ACTIONS(212), 5, anon_sym_async, sym_identifier, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(203), 15, + ACTIONS(210), 15, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LBRACE, @@ -17403,24 +18388,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ_GT, - [14901] = 4, + [15888] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(634), 1, - anon_sym_COMMA, - ACTIONS(632), 6, + ACTIONS(674), 6, anon_sym_LPAREN, anon_sym_RBRACE, sym_float, sym_string, anon_sym_LBRACK, anon_sym_STAR, - ACTIONS(630), 16, + ACTIONS(672), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -17432,48 +18416,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [14934] = 3, + [15919] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(638), 6, - anon_sym_LPAREN, - anon_sym_RBRACE, - sym_float, - sym_string, - anon_sym_LBRACK, - anon_sym_STAR, - ACTIONS(636), 16, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_struct, - anon_sym_none, - anon_sym_some, - anon_sym_args, - anon_sym_assert_equal, - anon_sym_env, - anon_sym_fs, - anon_sym_json, - anon_sym_length, - anon_sym_output, - anon_sym_random, - anon_sym_string, - [14964] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(428), 5, + ACTIONS(487), 5, anon_sym_LPAREN, anon_sym_RPAREN, sym_float, sym_string, anon_sym_LBRACK, - ACTIONS(640), 16, + ACTIONS(676), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -17485,21 +18443,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [14993] = 3, + [15949] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(472), 5, + ACTIONS(450), 5, anon_sym_LPAREN, sym_float, sym_string, anon_sym_LBRACK, anon_sym_RBRACK, - ACTIONS(642), 16, + ACTIONS(678), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -17511,20 +18470,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [15022] = 3, + [15979] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(646), 4, + ACTIONS(682), 4, anon_sym_LPAREN, sym_float, sym_string, anon_sym_LBRACK, - ACTIONS(644), 16, + ACTIONS(680), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -17536,79 +18496,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [15050] = 5, + [16008] = 3, ACTIONS(3), 1, sym__comment, - STATE(178), 1, - sym_logic_operator, - STATE(190), 1, - sym_math_operator, - ACTIONS(209), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(207), 15, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15082] = 10, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(406), 1, - anon_sym_SEMI, - ACTIONS(628), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(325), 3, - anon_sym_COMMA, - anon_sym_RBRACE, - sym_identifier, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15124] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(650), 4, + ACTIONS(686), 4, anon_sym_LPAREN, sym_float, sym_string, anon_sym_LBRACK, - ACTIONS(648), 16, + ACTIONS(684), 17, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_struct, + anon_sym_new, anon_sym_none, anon_sym_some, anon_sym_args, @@ -17620,20 +18522,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_output, anon_sym_random, anon_sym_string, - [15152] = 6, + [16037] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(599), 1, + ACTIONS(654), 1, anon_sym_DASH_GT, - STATE(178), 1, - sym_logic_operator, - STATE(190), 1, + STATE(204), 1, sym_math_operator, - ACTIONS(199), 3, + STATE(205), 1, + sym_logic_operator, + ACTIONS(218), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(197), 14, + ACTIONS(216), 14, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, @@ -17648,20 +18550,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15186] = 6, + [16071] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(599), 1, + ACTIONS(654), 1, anon_sym_DASH_GT, - STATE(178), 1, - sym_logic_operator, - STATE(190), 1, + STATE(204), 1, sym_math_operator, - ACTIONS(205), 3, + STATE(205), 1, + sym_logic_operator, + ACTIONS(212), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(203), 14, + ACTIONS(210), 14, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, @@ -17676,903 +18578,509 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15220] = 9, + [16105] = 5, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, + STATE(204), 1, sym_math_operator, - ACTIONS(335), 2, + STATE(205), 1, + sym_logic_operator, + ACTIONS(208), 3, + anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(325), 4, + ACTIONS(206), 15, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [16137] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(346), 4, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, sym_identifier, - ACTIONS(329), 4, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15260] = 11, + [16177] = 10, ACTIONS(3), 1, sym__comment, - ACTIONS(171), 1, - anon_sym_LBRACE, - ACTIONS(331), 1, + ACTIONS(354), 1, anon_sym_DASH, - ACTIONS(628), 1, + ACTIONS(530), 1, + anon_sym_SEMI, + ACTIONS(670), 1, anon_sym_DASH_GT, - ACTIONS(652), 1, - anon_sym_async, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - STATE(281), 1, - sym_block, - ACTIONS(335), 2, + ACTIONS(358), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(346), 3, + anon_sym_COMMA, + anon_sym_RBRACE, + sym_identifier, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15303] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(654), 1, - anon_sym_DASH_GT, - STATE(163), 1, - sym_logic_operator, - STATE(164), 1, - sym_math_operator, - ACTIONS(199), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(197), 13, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15336] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(654), 1, - anon_sym_DASH_GT, - STATE(163), 1, - sym_logic_operator, - STATE(164), 1, - sym_math_operator, - ACTIONS(205), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(203), 13, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15369] = 11, + [16219] = 11, ACTIONS(3), 1, sym__comment, ACTIONS(11), 1, anon_sym_LBRACE, - ACTIONS(331), 1, + ACTIONS(354), 1, anon_sym_DASH, - ACTIONS(628), 1, + ACTIONS(670), 1, anon_sym_DASH_GT, - ACTIONS(656), 1, + ACTIONS(688), 1, anon_sym_async, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, + sym_math_operator, + STATE(231), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16262] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(690), 1, + anon_sym_DASH_GT, + STATE(170), 1, + sym_logic_operator, + STATE(171), 1, + sym_math_operator, + ACTIONS(218), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(216), 13, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16295] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(692), 1, + anon_sym_async, + ACTIONS(694), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(283), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16338] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(696), 1, + anon_sym_async, + ACTIONS(698), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(216), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16381] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(178), 1, + anon_sym_LBRACE, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(700), 1, + anon_sym_async, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(298), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16424] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(696), 1, + anon_sym_async, + ACTIONS(698), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(217), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16467] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(140), 1, + anon_sym_LBRACE, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(702), 1, + anon_sym_async, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(289), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16510] = 5, + ACTIONS(3), 1, + sym__comment, + STATE(170), 1, + sym_logic_operator, + STATE(171), 1, + sym_math_operator, + ACTIONS(208), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(206), 14, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [16541] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(692), 1, + anon_sym_async, + ACTIONS(694), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + STATE(284), 1, + sym_block, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16584] = 11, + ACTIONS(3), 1, + sym__comment, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(688), 1, + anon_sym_async, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, sym_math_operator, STATE(222), 1, sym_block, - ACTIONS(335), 2, + ACTIONS(358), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15412] = 11, + [16627] = 11, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, + ACTIONS(140), 1, + anon_sym_LBRACE, + ACTIONS(354), 1, anon_sym_DASH, - ACTIONS(628), 1, + ACTIONS(670), 1, anon_sym_DASH_GT, - ACTIONS(658), 1, + ACTIONS(702), 1, anon_sym_async, - ACTIONS(660), 1, - anon_sym_LBRACE, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - STATE(274), 1, + STATE(298), 1, sym_block, - ACTIONS(335), 2, + ACTIONS(358), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15455] = 5, + [16670] = 11, ACTIONS(3), 1, sym__comment, - STATE(163), 1, - sym_logic_operator, - STATE(164), 1, - sym_math_operator, - ACTIONS(209), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(207), 14, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15486] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(11), 1, + ACTIONS(178), 1, anon_sym_LBRACE, - ACTIONS(331), 1, + ACTIONS(354), 1, anon_sym_DASH, - ACTIONS(628), 1, + ACTIONS(670), 1, anon_sym_DASH_GT, - ACTIONS(656), 1, + ACTIONS(700), 1, anon_sym_async, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - STATE(218), 1, + STATE(289), 1, sym_block, - ACTIONS(335), 2, + ACTIONS(358), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15529] = 11, + [16713] = 6, ACTIONS(3), 1, sym__comment, - ACTIONS(135), 1, - anon_sym_LBRACE, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(662), 1, - anon_sym_async, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(281), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15572] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(664), 1, - anon_sym_async, - ACTIONS(666), 1, - anon_sym_LBRACE, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(210), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15615] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(135), 1, - anon_sym_LBRACE, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(662), 1, - anon_sym_async, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(287), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15658] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(658), 1, - anon_sym_async, - ACTIONS(660), 1, - anon_sym_LBRACE, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(273), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15701] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(664), 1, - anon_sym_async, - ACTIONS(666), 1, - anon_sym_LBRACE, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(213), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15744] = 11, - ACTIONS(3), 1, - sym__comment, - ACTIONS(171), 1, - anon_sym_LBRACE, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(652), 1, - anon_sym_async, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - STATE(287), 1, - sym_block, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [15787] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(215), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 13, - anon_sym_RPAREN, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15817] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(672), 1, - anon_sym_DASH_GT, - ACTIONS(670), 7, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(668), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [15845] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(678), 1, - anon_sym_DASH_GT, - ACTIONS(676), 7, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(674), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [15873] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(221), 1, - anon_sym_COLON, - ACTIONS(223), 1, - anon_sym_LT, - STATE(387), 1, - sym_type_definition, - ACTIONS(215), 2, - anon_sym_DASH, - anon_sym_GT, - ACTIONS(217), 2, - anon_sym_LPAREN, - anon_sym_RPAREN, - ACTIONS(213), 11, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15907] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(215), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 14, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15935] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(680), 1, - anon_sym_DOT_DOT, - ACTIONS(245), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(243), 14, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [15963] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(684), 7, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(682), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [15988] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(686), 1, - anon_sym_DASH_GT, - STATE(185), 1, - sym_math_operator, - STATE(186), 1, - sym_logic_operator, - ACTIONS(205), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(203), 11, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16019] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(688), 1, - anon_sym_EQ_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16056] = 6, - ACTIONS(3), 1, - sym__comment, - ACTIONS(686), 1, - anon_sym_DASH_GT, - STATE(185), 1, - sym_math_operator, - STATE(186), 1, - sym_logic_operator, - ACTIONS(199), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(197), 11, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16087] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(670), 7, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(668), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [16112] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, ACTIONS(690), 1, - anon_sym_LBRACE, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16149] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(686), 1, anon_sym_DASH_GT, - ACTIONS(692), 1, - anon_sym_RPAREN, - STATE(185), 1, - sym_math_operator, - STATE(186), 1, + STATE(170), 1, sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16186] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, + STATE(171), 1, + sym_math_operator, + ACTIONS(212), 3, anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - ACTIONS(694), 1, - anon_sym_LBRACE, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16223] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(686), 1, - anon_sym_DASH_GT, - ACTIONS(696), 1, - anon_sym_RPAREN, - STATE(185), 1, - sym_math_operator, - STATE(186), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16260] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(686), 1, - anon_sym_DASH_GT, - ACTIONS(698), 1, - anon_sym_RPAREN, - STATE(185), 1, - sym_math_operator, - STATE(186), 1, - sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16297] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(702), 7, + ACTIONS(210), 13, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(700), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [16322] = 3, + anon_sym_COLON, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16746] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(706), 7, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_GT, - ACTIONS(704), 10, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - anon_sym_option, - [16347] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(708), 1, - anon_sym_RPAREN, - ACTIONS(215), 3, + ACTIONS(704), 1, + anon_sym_DOT_DOT, + ACTIONS(264), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(213), 11, + ACTIONS(262), 14, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, @@ -18584,44 +19092,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [16375] = 8, + [16774] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(686), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16409] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, ACTIONS(710), 1, + anon_sym_DASH_GT, + ACTIONS(708), 7, + anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(215), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(706), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [16802] = 7, + ACTIONS(3), 1, + sym__comment, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(238), 1, + anon_sym_LT, + STATE(385), 1, + sym_type_definition, + ACTIONS(230), 2, anon_sym_DASH, anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 11, + ACTIONS(232), 2, + anon_sym_LPAREN, + anon_sym_RPAREN, + ACTIONS(228), 11, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, @@ -18633,175 +19143,879 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [16437] = 8, + [16836] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(230), 3, anon_sym_DASH, - ACTIONS(686), 1, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 14, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, anon_sym_DASH_GT, - STATE(185), 1, + [16864] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(716), 1, + anon_sym_DASH_GT, + ACTIONS(714), 7, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(712), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [16892] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(236), 1, + anon_sym_COLON, + ACTIONS(230), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 13, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [16922] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(718), 1, + anon_sym_DASH_GT, + STATE(189), 1, sym_math_operator, - STATE(186), 1, + STATE(190), 1, sym_logic_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16471] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, + ACTIONS(212), 3, anon_sym_DASH, - ACTIONS(599), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(210), 11, + anon_sym_RPAREN, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16505] = 8, + [16953] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, + ACTIONS(708), 7, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(706), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [16978] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(720), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17015] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(722), 1, + anon_sym_LBRACE, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17052] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(726), 7, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(724), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [17077] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(730), 7, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(728), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [17102] = 6, + ACTIONS(3), 1, + sym__comment, + ACTIONS(718), 1, + anon_sym_DASH_GT, + STATE(189), 1, + sym_math_operator, + STATE(190), 1, + sym_logic_operator, + ACTIONS(218), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(216), 11, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17133] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + ACTIONS(732), 1, + anon_sym_EQ_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17170] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(718), 1, + anon_sym_DASH_GT, + ACTIONS(734), 1, + anon_sym_RPAREN, + STATE(189), 1, + sym_math_operator, + STATE(190), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17207] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(718), 1, + anon_sym_DASH_GT, + ACTIONS(736), 1, + anon_sym_RPAREN, + STATE(189), 1, + sym_math_operator, + STATE(190), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17244] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(740), 7, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_GT, + ACTIONS(738), 10, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + anon_sym_option, + [17269] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(718), 1, + anon_sym_DASH_GT, + ACTIONS(742), 1, + anon_sym_RPAREN, + STATE(189), 1, + sym_math_operator, + STATE(190), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17306] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(660), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17340] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(362), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17374] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(744), 1, + anon_sym_RPAREN, + ACTIONS(230), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 11, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [17402] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(746), 1, + anon_sym_RPAREN, + ACTIONS(230), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 11, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [17430] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 2, + anon_sym_LPAREN, + anon_sym_RPAREN, + ACTIONS(230), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 11, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [17456] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(750), 1, + anon_sym_LPAREN, + ACTIONS(752), 1, + anon_sym_RPAREN, + ACTIONS(754), 1, + anon_sym_LBRACE, + ACTIONS(756), 1, + anon_sym_LBRACK, + ACTIONS(758), 1, + anon_sym_option, + STATE(357), 1, + aux_sym_type_repeat1, + STATE(365), 1, + sym_type, + ACTIONS(748), 9, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + [17492] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(220), 1, + anon_sym_DASH_GT, + ACTIONS(354), 1, + anon_sym_DASH, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17526] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(360), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17560] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(214), 1, + anon_sym_DASH_GT, + ACTIONS(354), 1, + anon_sym_DASH, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17594] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(670), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17628] = 5, + ACTIONS(3), 1, + sym__comment, + ACTIONS(232), 1, + anon_sym_LPAREN, + ACTIONS(760), 1, + anon_sym_RPAREN, + ACTIONS(230), 3, + anon_sym_DASH, + anon_sym_GT, + anon_sym_LT, + ACTIONS(228), 11, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_DASH_GT, + [17656] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(718), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17690] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(765), 1, + anon_sym_LPAREN, + ACTIONS(768), 1, + anon_sym_RPAREN, + ACTIONS(770), 1, + anon_sym_LBRACE, + ACTIONS(773), 1, + anon_sym_LBRACK, + ACTIONS(776), 1, + anon_sym_option, + STATE(357), 1, + aux_sym_type_repeat1, + STATE(365), 1, + sym_type, + ACTIONS(762), 9, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + [17726] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(410), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17760] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(718), 1, + anon_sym_DASH_GT, + STATE(189), 1, + sym_math_operator, + STATE(190), 1, + sym_logic_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17794] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(690), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17828] = 9, + ACTIONS(3), 1, + sym__comment, + ACTIONS(750), 1, + anon_sym_LPAREN, + ACTIONS(754), 1, + anon_sym_LBRACE, + ACTIONS(756), 1, + anon_sym_LBRACK, + ACTIONS(758), 1, + anon_sym_option, + ACTIONS(779), 1, + anon_sym_RPAREN, + STATE(350), 1, + aux_sym_type_repeat1, + STATE(365), 1, + sym_type, + ACTIONS(748), 9, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + [17864] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, + anon_sym_DASH, + ACTIONS(368), 1, + anon_sym_DASH_GT, + STATE(179), 1, + sym_logic_operator, + STATE(183), 1, + sym_math_operator, + ACTIONS(358), 2, + anon_sym_GT, + anon_sym_LT, + ACTIONS(352), 4, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(356), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17898] = 8, + ACTIONS(3), 1, + sym__comment, + ACTIONS(354), 1, anon_sym_DASH, ACTIONS(654), 1, anon_sym_DASH_GT, - STATE(166), 1, + STATE(179), 1, sym_logic_operator, - STATE(167), 1, + STATE(183), 1, sym_math_operator, - ACTIONS(335), 2, + ACTIONS(358), 2, anon_sym_GT, anon_sym_LT, - ACTIONS(329), 4, + ACTIONS(352), 4, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(333), 6, + ACTIONS(356), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16539] = 9, + [17932] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(718), 1, + ACTIONS(781), 1, anon_sym_RPAREN, - ACTIONS(720), 1, - anon_sym_LBRACE, - ACTIONS(723), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_option, - STATE(342), 1, - aux_sym_type_repeat1, - STATE(356), 1, - sym_type, - ACTIONS(712), 9, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - [16575] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(323), 1, - anon_sym_DASH_GT, - ACTIONS(331), 1, - anon_sym_DASH, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16609] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(211), 1, - anon_sym_DASH_GT, - ACTIONS(331), 1, - anon_sym_DASH, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16643] = 5, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 1, - anon_sym_LPAREN, - ACTIONS(729), 1, - anon_sym_RPAREN, - ACTIONS(215), 3, + ACTIONS(244), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(213), 11, + ACTIONS(242), 11, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, @@ -18813,270 +20027,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [16671] = 8, + [17957] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(628), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16705] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(201), 1, - anon_sym_DASH_GT, - ACTIONS(331), 1, - anon_sym_DASH, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16739] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(733), 1, - anon_sym_LPAREN, - ACTIONS(735), 1, - anon_sym_RPAREN, - ACTIONS(737), 1, - anon_sym_LBRACE, - ACTIONS(739), 1, - anon_sym_LBRACK, - ACTIONS(741), 1, - anon_sym_option, - STATE(349), 1, - aux_sym_type_repeat1, - STATE(356), 1, - sym_type, - ACTIONS(731), 9, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - [16775] = 9, - ACTIONS(3), 1, - sym__comment, - ACTIONS(733), 1, - anon_sym_LPAREN, - ACTIONS(737), 1, - anon_sym_LBRACE, - ACTIONS(739), 1, - anon_sym_LBRACK, - ACTIONS(741), 1, - anon_sym_option, - ACTIONS(743), 1, - anon_sym_RPAREN, - STATE(342), 1, - aux_sym_type_repeat1, - STATE(356), 1, - sym_type, - ACTIONS(731), 9, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - [16811] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(347), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16845] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(343), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16879] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(217), 2, - anon_sym_LPAREN, - anon_sym_RPAREN, - ACTIONS(215), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(213), 11, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [16905] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(620), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16939] = 8, - ACTIONS(3), 1, - sym__comment, - ACTIONS(331), 1, - anon_sym_DASH, - ACTIONS(341), 1, - anon_sym_DASH_GT, - STATE(166), 1, - sym_logic_operator, - STATE(167), 1, - sym_math_operator, - ACTIONS(335), 2, - anon_sym_GT, - anon_sym_LT, - ACTIONS(329), 4, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(333), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [16973] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(745), 1, - anon_sym_RPAREN, - ACTIONS(237), 3, - anon_sym_DASH, - anon_sym_GT, - anon_sym_LT, - ACTIONS(235), 11, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_DASH_GT, - [16998] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(751), 1, + ACTIONS(787), 1, anon_sym_COMMA, - ACTIONS(749), 4, + ACTIONS(785), 4, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_LBRACK, - ACTIONS(747), 10, + ACTIONS(783), 10, sym_identifier, anon_sym_none, anon_sym_any, @@ -19087,16 +20048,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_num, anon_sym_str, anon_sym_option, - [17023] = 4, + [17982] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(753), 1, + ACTIONS(789), 1, anon_sym_RPAREN, - ACTIONS(237), 3, + ACTIONS(244), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(235), 11, + ACTIONS(242), 11, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, @@ -19108,16 +20069,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [17048] = 4, + [18007] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(755), 1, + ACTIONS(791), 1, anon_sym_RPAREN, - ACTIONS(237), 3, + ACTIONS(244), 3, anon_sym_DASH, anon_sym_GT, anon_sym_LT, - ACTIONS(235), 11, + ACTIONS(242), 11, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH, @@ -19129,15 +20090,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_DASH_GT, - [17073] = 3, + [18032] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(718), 4, + ACTIONS(750), 1, + anon_sym_LPAREN, + ACTIONS(754), 1, + anon_sym_LBRACE, + ACTIONS(756), 1, + anon_sym_LBRACK, + ACTIONS(758), 1, + anon_sym_option, + STATE(343), 1, + sym_type, + ACTIONS(748), 9, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + [18062] = 7, + ACTIONS(3), 1, + sym__comment, + ACTIONS(750), 1, + anon_sym_LPAREN, + ACTIONS(754), 1, + anon_sym_LBRACE, + ACTIONS(756), 1, + anon_sym_LBRACK, + ACTIONS(758), 1, + anon_sym_option, + STATE(423), 1, + sym_type, + ACTIONS(748), 9, + sym_identifier, + anon_sym_none, + anon_sym_any, + anon_sym_bool, + anon_sym_collection, + anon_sym_float, + anon_sym_int, + anon_sym_num, + anon_sym_str, + [18092] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(768), 4, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_LBRACK, - ACTIONS(757), 10, + ACTIONS(793), 10, sym_identifier, anon_sym_none, anon_sym_any, @@ -19148,20 +20155,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_num, anon_sym_str, anon_sym_option, - [17095] = 7, + [18114] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(733), 1, + ACTIONS(750), 1, anon_sym_LPAREN, - ACTIONS(737), 1, + ACTIONS(754), 1, anon_sym_LBRACE, - ACTIONS(739), 1, + ACTIONS(756), 1, anon_sym_LBRACK, - ACTIONS(741), 1, + ACTIONS(758), 1, anon_sym_option, - STATE(438), 1, + STATE(338), 1, sym_type, - ACTIONS(731), 9, + ACTIONS(748), 9, sym_identifier, anon_sym_none, anon_sym_any, @@ -19171,20 +20178,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_num, anon_sym_str, - [17125] = 7, + [18144] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(733), 1, + ACTIONS(750), 1, anon_sym_LPAREN, - ACTIONS(737), 1, + ACTIONS(754), 1, anon_sym_LBRACE, - ACTIONS(739), 1, + ACTIONS(756), 1, anon_sym_LBRACK, - ACTIONS(741), 1, + ACTIONS(758), 1, anon_sym_option, - STATE(426), 1, + STATE(448), 1, sym_type, - ACTIONS(731), 9, + ACTIONS(748), 9, sym_identifier, anon_sym_none, anon_sym_any, @@ -19194,20 +20201,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_num, anon_sym_str, - [17155] = 7, + [18174] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(733), 1, + ACTIONS(750), 1, anon_sym_LPAREN, - ACTIONS(737), 1, + ACTIONS(754), 1, anon_sym_LBRACE, - ACTIONS(739), 1, + ACTIONS(756), 1, anon_sym_LBRACK, - ACTIONS(741), 1, + ACTIONS(758), 1, anon_sym_option, - STATE(334), 1, + STATE(439), 1, sym_type, - ACTIONS(731), 9, + ACTIONS(748), 9, sym_identifier, anon_sym_none, anon_sym_any, @@ -19217,59 +20224,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_num, anon_sym_str, - [17185] = 7, + [18204] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(733), 1, - anon_sym_LPAREN, - ACTIONS(737), 1, - anon_sym_LBRACE, - ACTIONS(739), 1, - anon_sym_LBRACK, - ACTIONS(741), 1, - anon_sym_option, - STATE(335), 1, - sym_type, - ACTIONS(731), 9, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - [17215] = 7, - ACTIONS(3), 1, - sym__comment, - ACTIONS(733), 1, - anon_sym_LPAREN, - ACTIONS(737), 1, - anon_sym_LBRACE, - ACTIONS(739), 1, - anon_sym_LBRACK, - ACTIONS(741), 1, - anon_sym_option, - STATE(432), 1, - sym_type, - ACTIONS(731), 9, - sym_identifier, - anon_sym_none, - anon_sym_any, - anon_sym_bool, - anon_sym_collection, - anon_sym_float, - anon_sym_int, - anon_sym_num, - anon_sym_str, - [17245] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(759), 2, + ACTIONS(795), 2, anon_sym_async, sym_identifier, - ACTIONS(761), 7, + ACTIONS(797), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LBRACE, @@ -19277,1403 +20238,1438 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, - [17262] = 7, + [18221] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(534), 1, + ACTIONS(568), 1, sym_identifier, - ACTIONS(609), 1, + ACTIONS(645), 1, anon_sym_elseif, - ACTIONS(763), 1, + ACTIONS(799), 1, anon_sym_else, - STATE(279), 1, + STATE(294), 1, sym_else, STATE(243), 2, sym_else_if, aux_sym_if_else_repeat1, - ACTIONS(532), 3, + ACTIONS(566), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, - [17287] = 7, + [18246] = 7, ACTIONS(3), 1, sym__comment, - ACTIONS(542), 1, + ACTIONS(576), 1, sym_identifier, - ACTIONS(609), 1, + ACTIONS(645), 1, anon_sym_elseif, - ACTIONS(763), 1, + ACTIONS(799), 1, anon_sym_else, - STATE(289), 1, + STATE(296), 1, sym_else, - STATE(366), 2, + STATE(375), 2, sym_else_if, aux_sym_if_else_repeat1, - ACTIONS(540), 3, + ACTIONS(574), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, - [17312] = 6, + [18271] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(767), 1, - anon_sym_COMMA, - ACTIONS(769), 1, + STATE(37), 1, + sym_assignment_operator, + ACTIONS(240), 3, anon_sym_EQ, - ACTIONS(771), 1, - anon_sym_LT, - STATE(372), 1, - sym_type_definition, - ACTIONS(765), 2, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + [18283] = 3, + ACTIONS(3), 1, + sym__comment, + STATE(29), 1, + sym_assignment_operator, + ACTIONS(240), 3, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + [18295] = 3, + ACTIONS(3), 1, + sym__comment, + STATE(30), 1, + sym_assignment_operator, + ACTIONS(240), 3, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + [18307] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(803), 1, + anon_sym_COMMA, + ACTIONS(805), 1, + anon_sym_EQ, + ACTIONS(801), 2, anon_sym_RBRACE, sym_identifier, - [17332] = 3, + [18321] = 4, ACTIONS(3), 1, sym__comment, - STATE(24), 1, - sym_assignment_operator, - ACTIONS(225), 3, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - [17344] = 3, + ACTIONS(140), 1, + anon_sym_LBRACE, + ACTIONS(702), 1, + anon_sym_async, + STATE(114), 1, + sym_block, + [18334] = 4, ACTIONS(3), 1, sym__comment, - STATE(38), 1, - sym_assignment_operator, - ACTIONS(225), 3, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - [17356] = 3, + ACTIONS(140), 1, + anon_sym_LBRACE, + ACTIONS(702), 1, + anon_sym_async, + STATE(116), 1, + sym_block, + [18347] = 4, ACTIONS(3), 1, sym__comment, - STATE(28), 1, - sym_assignment_operator, - ACTIONS(225), 3, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - [17368] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(775), 1, - anon_sym_COMMA, - ACTIONS(777), 1, - anon_sym_EQ, - ACTIONS(773), 2, - anon_sym_RBRACE, + ACTIONS(807), 1, sym_identifier, - [17382] = 4, + ACTIONS(809), 1, + anon_sym_RPAREN, + STATE(390), 1, + aux_sym_function_repeat1, + [18360] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(811), 1, + sym_identifier, + ACTIONS(813), 1, + anon_sym_RBRACE, + STATE(395), 1, + aux_sym_structure_instantiator_repeat1, + [18373] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(817), 1, + anon_sym_COMMA, + ACTIONS(815), 2, + anon_sym_RPAREN, + sym_identifier, + [18384] = 4, ACTIONS(3), 1, sym__comment, ACTIONS(11), 1, anon_sym_LBRACE, - ACTIONS(656), 1, + ACTIONS(688), 1, anon_sym_async, - STATE(57), 1, + STATE(54), 1, sym_block, - [17395] = 4, + [18397] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(779), 1, - sym_identifier, - ACTIONS(781), 1, + ACTIONS(821), 1, + anon_sym_COMMA, + ACTIONS(819), 2, anon_sym_RBRACE, - STATE(376), 1, - aux_sym_structure_repeat1, - [17408] = 4, + sym_identifier, + [18408] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(807), 1, + sym_identifier, + ACTIONS(823), 1, + anon_sym_RPAREN, + STATE(390), 1, + aux_sym_function_repeat1, + [18421] = 4, ACTIONS(3), 1, sym__comment, ACTIONS(11), 1, anon_sym_LBRACE, - ACTIONS(656), 1, + ACTIONS(688), 1, anon_sym_async, - STATE(215), 1, + STATE(226), 1, sym_block, - [17421] = 4, + [18434] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(773), 1, + ACTIONS(815), 1, + anon_sym_RPAREN, + ACTIONS(825), 1, + sym_identifier, + STATE(390), 1, + aux_sym_function_repeat1, + [18447] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(807), 1, + sym_identifier, + ACTIONS(828), 1, + anon_sym_RPAREN, + STATE(390), 1, + aux_sym_function_repeat1, + [18460] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(811), 1, + sym_identifier, + ACTIONS(830), 1, anon_sym_RBRACE, - ACTIONS(783), 1, + STATE(395), 1, + aux_sym_structure_instantiator_repeat1, + [18473] = 4, + ACTIONS(3), 1, + sym__comment, + ACTIONS(811), 1, sym_identifier, - STATE(376), 1, - aux_sym_structure_repeat1, - [17434] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(786), 1, - sym_identifier, - ACTIONS(788), 1, - anon_sym_RPAREN, - STATE(378), 1, - aux_sym_function_repeat1, - [17447] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(790), 1, - sym_identifier, - ACTIONS(793), 1, - anon_sym_RPAREN, - STATE(378), 1, - aux_sym_function_repeat1, - [17460] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(171), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_async, - STATE(104), 1, - sym_block, - [17473] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(171), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_async, - STATE(108), 1, - sym_block, - [17486] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(786), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_RPAREN, - STATE(378), 1, - aux_sym_function_repeat1, - [17499] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(135), 1, - anon_sym_LBRACE, - ACTIONS(662), 1, - anon_sym_async, - STATE(283), 1, - sym_block, - [17512] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(799), 1, - anon_sym_COMMA, - ACTIONS(797), 2, + ACTIONS(832), 1, anon_sym_RBRACE, - sym_identifier, - [17523] = 4, + STATE(395), 1, + aux_sym_structure_instantiator_repeat1, + [18486] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(135), 1, + ACTIONS(11), 1, anon_sym_LBRACE, - ACTIONS(662), 1, + ACTIONS(688), 1, anon_sym_async, - STATE(255), 1, + STATE(60), 1, sym_block, - [17536] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(135), 1, - anon_sym_LBRACE, - ACTIONS(662), 1, - anon_sym_async, - STATE(266), 1, - sym_block, - [17549] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(171), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_async, - STATE(283), 1, - sym_block, - [17562] = 3, + [18499] = 4, ACTIONS(3), 1, sym__comment, ACTIONS(801), 1, - anon_sym_COMMA, - ACTIONS(793), 2, - anon_sym_RPAREN, - sym_identifier, - [17573] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(805), 1, - anon_sym_COMMA, - ACTIONS(803), 2, anon_sym_RBRACE, + ACTIONS(834), 1, sym_identifier, - [17584] = 4, + STATE(395), 1, + aux_sym_structure_instantiator_repeat1, + [18512] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(779), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_RBRACE, - STATE(376), 1, - aux_sym_structure_repeat1, - [17597] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(779), 1, - sym_identifier, - ACTIONS(809), 1, - anon_sym_RBRACE, - STATE(376), 1, - aux_sym_structure_repeat1, - [17610] = 4, - ACTIONS(3), 1, - sym__comment, - ACTIONS(11), 1, + ACTIONS(178), 1, anon_sym_LBRACE, - ACTIONS(656), 1, + ACTIONS(700), 1, anon_sym_async, - STATE(51), 1, + STATE(254), 1, sym_block, - [17623] = 4, + [18525] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(786), 1, - sym_identifier, - ACTIONS(811), 1, - anon_sym_RPAREN, - STATE(378), 1, - aux_sym_function_repeat1, - [17636] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(385), 1, - sym_type_definition, - [17646] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(227), 1, - anon_sym_LPAREN, - ACTIONS(813), 1, - anon_sym_RPAREN, - [17656] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(803), 2, - anon_sym_RBRACE, - sym_identifier, - [17664] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(227), 1, - anon_sym_LPAREN, - ACTIONS(815), 1, - anon_sym_RPAREN, - [17674] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(379), 1, - sym_type_definition, - [17684] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(779), 1, - sym_identifier, - STATE(374), 1, - aux_sym_structure_repeat1, - [17694] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(817), 2, - anon_sym_RPAREN, - sym_identifier, - [17702] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(227), 1, - anon_sym_LPAREN, - ACTIONS(819), 1, - anon_sym_RPAREN, - [17712] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(387), 1, - sym_type_definition, - [17722] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, + ACTIONS(837), 1, + anon_sym_EQ, + ACTIONS(839), 1, anon_sym_LT, STATE(380), 1, sym_type_definition, - [17732] = 3, + [18538] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(391), 1, - sym_type_definition, - [17742] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(779), 1, - sym_identifier, - STATE(390), 1, - aux_sym_structure_repeat1, - [17752] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(797), 2, - anon_sym_RBRACE, - sym_identifier, - [17760] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(821), 2, - anon_sym_RBRACE, - sym_identifier, - [17768] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(373), 1, - sym_type_definition, - [17778] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(384), 1, - sym_type_definition, - [17788] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(773), 2, - anon_sym_RBRACE, - sym_identifier, - [17796] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(779), 1, - sym_identifier, - STATE(389), 1, - aux_sym_structure_repeat1, - [17806] = 3, - ACTIONS(3), 1, - sym__comment, - ACTIONS(771), 1, - anon_sym_LT, - STATE(420), 1, - sym_type_definition, - [17816] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(823), 1, - anon_sym_COLON, - [17823] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(825), 1, + ACTIONS(178), 1, anon_sym_LBRACE, - [17830] = 2, + ACTIONS(700), 1, + anon_sym_async, + STATE(266), 1, + sym_block, + [18551] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(827), 1, - ts_builtin_sym_end, - [17837] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(829), 1, - anon_sym_COLON, - [17844] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(831), 1, - anon_sym_LPAREN, - [17851] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(833), 1, + ACTIONS(140), 1, anon_sym_LBRACE, - [17858] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(835), 1, - anon_sym_LBRACE, - [17865] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(688), 1, - anon_sym_EQ_GT, - [17872] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(837), 1, - anon_sym_RBRACE, - [17879] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(839), 1, - anon_sym_LPAREN, - [17886] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(841), 1, - anon_sym_COLON, - [17893] = 2, + ACTIONS(702), 1, + anon_sym_async, + STATE(292), 1, + sym_block, + [18564] = 3, ACTIONS(3), 1, sym__comment, ACTIONS(843), 1, - anon_sym_LBRACE, - [17900] = 2, - ACTIONS(3), 1, - sym__comment, - ACTIONS(845), 1, + anon_sym_COMMA, + ACTIONS(841), 2, + anon_sym_RBRACE, sym_identifier, - [17907] = 2, + [18575] = 4, ACTIONS(3), 1, sym__comment, - ACTIONS(847), 1, + ACTIONS(178), 1, anon_sym_LBRACE, - [17914] = 2, + ACTIONS(700), 1, + anon_sym_async, + STATE(292), 1, + sym_block, + [18588] = 2, ACTIONS(3), 1, sym__comment, - ACTIONS(837), 1, + ACTIONS(845), 2, anon_sym_RPAREN, - [17921] = 2, + sym_identifier, + [18596] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(849), 1, + ACTIONS(811), 1, + sym_identifier, + STATE(384), 1, + aux_sym_structure_instantiator_repeat1, + [18606] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(847), 2, + anon_sym_RBRACE, + sym_identifier, + [18614] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(841), 2, + anon_sym_RBRACE, + sym_identifier, + [18622] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(385), 1, + sym_type_definition, + [18632] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(396), 1, + sym_type_definition, + [18642] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(364), 1, anon_sym_LBRACE, - [17928] = 2, + STATE(100), 1, + sym_structure_instantiator, + [18652] = 3, ACTIONS(3), 1, sym__comment, + ACTIONS(310), 1, + anon_sym_LPAREN, + ACTIONS(849), 1, + anon_sym_RPAREN, + [18662] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(811), 1, + sym_identifier, + STATE(392), 1, + aux_sym_structure_instantiator_repeat1, + [18672] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(394), 1, + sym_type_definition, + [18682] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(652), 1, + anon_sym_LBRACE, + STATE(268), 1, + sym_structure_instantiator, + [18692] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(431), 1, + sym_type_definition, + [18702] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(226), 1, + anon_sym_LBRACE, + STATE(49), 1, + sym_structure_instantiator, + [18712] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(811), 1, + sym_identifier, + STATE(393), 1, + aux_sym_structure_instantiator_repeat1, + [18722] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(310), 1, + anon_sym_LPAREN, ACTIONS(851), 1, - anon_sym_LPAREN, - [17935] = 2, + anon_sym_RPAREN, + [18732] = 3, ACTIONS(3), 1, sym__comment, - ACTIONS(853), 1, + ACTIONS(839), 1, + anon_sym_LT, + STATE(398), 1, + sym_type_definition, + [18742] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(386), 1, + sym_type_definition, + [18752] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(310), 1, anon_sym_LPAREN, - [17942] = 2, + ACTIONS(853), 1, + anon_sym_RPAREN, + [18762] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(819), 2, + anon_sym_RBRACE, + sym_identifier, + [18770] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(382), 1, + sym_type_definition, + [18780] = 3, + ACTIONS(3), 1, + sym__comment, + ACTIONS(839), 1, + anon_sym_LT, + STATE(381), 1, + sym_type_definition, + [18790] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(855), 1, - anon_sym_in, - [17949] = 2, + anon_sym_RPAREN, + [18797] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(857), 1, - anon_sym_in, - [17956] = 2, + anon_sym_LPAREN, + [18804] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(859), 1, - anon_sym_RBRACK, - [17963] = 2, + anon_sym_LBRACE, + [18811] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(861), 1, anon_sym_COLON, - [17970] = 2, + [18818] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(863), 1, anon_sym_LPAREN, - [17977] = 2, + [18825] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(865), 1, - anon_sym_COLON, - [17984] = 2, + anon_sym_LBRACE, + [18832] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(867), 1, - anon_sym_COLON, - [17991] = 2, + sym_identifier, + [18839] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(869), 1, - anon_sym_LBRACE, - [17998] = 2, + sym_identifier, + [18846] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(855), 1, + anon_sym_RBRACE, + [18853] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(871), 1, - anon_sym_GT, - [18005] = 2, + anon_sym_COLON, + [18860] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(873), 1, - anon_sym_LPAREN, - [18012] = 2, + anon_sym_COLON, + [18867] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(875), 1, - anon_sym_LBRACE, - [18019] = 2, + ts_builtin_sym_end, + [18874] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(877), 1, - anon_sym_LPAREN, - [18026] = 2, + anon_sym_COLON, + [18881] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(879), 1, - sym_identifier, - [18033] = 2, + anon_sym_LBRACE, + [18888] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(881), 1, anon_sym_in, - [18040] = 2, + [18895] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(883), 1, - anon_sym_COLON, - [18047] = 2, + anon_sym_LBRACE, + [18902] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(885), 1, - sym_identifier, - [18054] = 2, + anon_sym_RBRACK, + [18909] = 2, ACTIONS(3), 1, sym__comment, ACTIONS(887), 1, + anon_sym_LPAREN, + [18916] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(889), 1, + anon_sym_COLON, + [18923] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(891), 1, + sym_identifier, + [18930] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(893), 1, + anon_sym_in, + [18937] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(895), 1, + sym_identifier, + [18944] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(897), 1, + anon_sym_LPAREN, + [18951] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(899), 1, + anon_sym_LPAREN, + [18958] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(901), 1, + anon_sym_LPAREN, + [18965] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(903), 1, + anon_sym_GT, + [18972] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(905), 1, + anon_sym_LBRACE, + [18979] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(732), 1, + anon_sym_EQ_GT, + [18986] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(907), 1, + anon_sym_COLON, + [18993] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(909), 1, + anon_sym_LPAREN, + [19000] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(911), 1, + sym_identifier, + [19007] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(913), 1, + anon_sym_in, + [19014] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(915), 1, + anon_sym_COLON, + [19021] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(917), 1, + sym_identifier, + [19028] = 2, + ACTIONS(3), 1, + sym__comment, + ACTIONS(919), 1, sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(39)] = 0, - [SMALL_STATE(40)] = 66, + [SMALL_STATE(40)] = 65, [SMALL_STATE(41)] = 132, - [SMALL_STATE(42)] = 196, - [SMALL_STATE(43)] = 259, - [SMALL_STATE(44)] = 324, - [SMALL_STATE(45)] = 389, - [SMALL_STATE(46)] = 462, - [SMALL_STATE(47)] = 520, - [SMALL_STATE(48)] = 578, - [SMALL_STATE(49)] = 636, - [SMALL_STATE(50)] = 694, - [SMALL_STATE(51)] = 752, - [SMALL_STATE(52)] = 810, - [SMALL_STATE(53)] = 868, - [SMALL_STATE(54)] = 926, - [SMALL_STATE(55)] = 988, - [SMALL_STATE(56)] = 1046, - [SMALL_STATE(57)] = 1104, - [SMALL_STATE(58)] = 1162, - [SMALL_STATE(59)] = 1220, - [SMALL_STATE(60)] = 1280, - [SMALL_STATE(61)] = 1348, - [SMALL_STATE(62)] = 1408, - [SMALL_STATE(63)] = 1466, - [SMALL_STATE(64)] = 1524, - [SMALL_STATE(65)] = 1582, - [SMALL_STATE(66)] = 1640, - [SMALL_STATE(67)] = 1698, - [SMALL_STATE(68)] = 1756, - [SMALL_STATE(69)] = 1814, - [SMALL_STATE(70)] = 1872, - [SMALL_STATE(71)] = 1930, - [SMALL_STATE(72)] = 1988, - [SMALL_STATE(73)] = 2046, - [SMALL_STATE(74)] = 2104, - [SMALL_STATE(75)] = 2165, - [SMALL_STATE(76)] = 2234, - [SMALL_STATE(77)] = 2295, - [SMALL_STATE(78)] = 2366, - [SMALL_STATE(79)] = 2422, - [SMALL_STATE(80)] = 2482, - [SMALL_STATE(81)] = 2540, - [SMALL_STATE(82)] = 2600, - [SMALL_STATE(83)] = 2659, - [SMALL_STATE(84)] = 2718, - [SMALL_STATE(85)] = 2775, - [SMALL_STATE(86)] = 2827, - [SMALL_STATE(87)] = 2879, - [SMALL_STATE(88)] = 2931, - [SMALL_STATE(89)] = 2983, - [SMALL_STATE(90)] = 3035, - [SMALL_STATE(91)] = 3087, - [SMALL_STATE(92)] = 3143, - [SMALL_STATE(93)] = 3195, - [SMALL_STATE(94)] = 3247, - [SMALL_STATE(95)] = 3301, - [SMALL_STATE(96)] = 3353, - [SMALL_STATE(97)] = 3405, - [SMALL_STATE(98)] = 3457, - [SMALL_STATE(99)] = 3509, - [SMALL_STATE(100)] = 3561, - [SMALL_STATE(101)] = 3613, - [SMALL_STATE(102)] = 3665, - [SMALL_STATE(103)] = 3719, - [SMALL_STATE(104)] = 3771, - [SMALL_STATE(105)] = 3823, - [SMALL_STATE(106)] = 3875, - [SMALL_STATE(107)] = 3927, - [SMALL_STATE(108)] = 3979, - [SMALL_STATE(109)] = 4031, - [SMALL_STATE(110)] = 4083, - [SMALL_STATE(111)] = 4135, - [SMALL_STATE(112)] = 4187, - [SMALL_STATE(113)] = 4252, - [SMALL_STATE(114)] = 4312, - [SMALL_STATE(115)] = 4367, - [SMALL_STATE(116)] = 4422, - [SMALL_STATE(117)] = 4508, - [SMALL_STATE(118)] = 4594, - [SMALL_STATE(119)] = 4644, - [SMALL_STATE(120)] = 4730, - [SMALL_STATE(121)] = 4815, - [SMALL_STATE(122)] = 4898, - [SMALL_STATE(123)] = 4959, - [SMALL_STATE(124)] = 5042, - [SMALL_STATE(125)] = 5127, - [SMALL_STATE(126)] = 5212, - [SMALL_STATE(127)] = 5297, - [SMALL_STATE(128)] = 5382, - [SMALL_STATE(129)] = 5445, - [SMALL_STATE(130)] = 5528, - [SMALL_STATE(131)] = 5611, - [SMALL_STATE(132)] = 5694, - [SMALL_STATE(133)] = 5777, - [SMALL_STATE(134)] = 5860, - [SMALL_STATE(135)] = 5943, - [SMALL_STATE(136)] = 6026, - [SMALL_STATE(137)] = 6109, - [SMALL_STATE(138)] = 6192, - [SMALL_STATE(139)] = 6277, - [SMALL_STATE(140)] = 6360, - [SMALL_STATE(141)] = 6443, - [SMALL_STATE(142)] = 6526, - [SMALL_STATE(143)] = 6611, - [SMALL_STATE(144)] = 6696, - [SMALL_STATE(145)] = 6779, - [SMALL_STATE(146)] = 6862, - [SMALL_STATE(147)] = 6945, - [SMALL_STATE(148)] = 7028, - [SMALL_STATE(149)] = 7113, - [SMALL_STATE(150)] = 7196, - [SMALL_STATE(151)] = 7258, - [SMALL_STATE(152)] = 7320, - [SMALL_STATE(153)] = 7393, - [SMALL_STATE(154)] = 7470, - [SMALL_STATE(155)] = 7545, - [SMALL_STATE(156)] = 7622, - [SMALL_STATE(157)] = 7699, - [SMALL_STATE(158)] = 7776, - [SMALL_STATE(159)] = 7853, - [SMALL_STATE(160)] = 7930, - [SMALL_STATE(161)] = 8007, - [SMALL_STATE(162)] = 8084, - [SMALL_STATE(163)] = 8161, - [SMALL_STATE(164)] = 8238, - [SMALL_STATE(165)] = 8315, - [SMALL_STATE(166)] = 8392, - [SMALL_STATE(167)] = 8469, - [SMALL_STATE(168)] = 8546, - [SMALL_STATE(169)] = 8621, - [SMALL_STATE(170)] = 8698, - [SMALL_STATE(171)] = 8775, - [SMALL_STATE(172)] = 8852, - [SMALL_STATE(173)] = 8929, - [SMALL_STATE(174)] = 9006, - [SMALL_STATE(175)] = 9083, - [SMALL_STATE(176)] = 9160, - [SMALL_STATE(177)] = 9237, - [SMALL_STATE(178)] = 9314, - [SMALL_STATE(179)] = 9391, - [SMALL_STATE(180)] = 9468, - [SMALL_STATE(181)] = 9541, - [SMALL_STATE(182)] = 9618, - [SMALL_STATE(183)] = 9695, - [SMALL_STATE(184)] = 9772, - [SMALL_STATE(185)] = 9847, - [SMALL_STATE(186)] = 9924, - [SMALL_STATE(187)] = 10001, - [SMALL_STATE(188)] = 10078, - [SMALL_STATE(189)] = 10155, - [SMALL_STATE(190)] = 10230, - [SMALL_STATE(191)] = 10307, - [SMALL_STATE(192)] = 10384, - [SMALL_STATE(193)] = 10461, - [SMALL_STATE(194)] = 10534, - [SMALL_STATE(195)] = 10611, - [SMALL_STATE(196)] = 10688, - [SMALL_STATE(197)] = 10761, - [SMALL_STATE(198)] = 10838, - [SMALL_STATE(199)] = 10915, - [SMALL_STATE(200)] = 10992, - [SMALL_STATE(201)] = 11069, - [SMALL_STATE(202)] = 11142, - [SMALL_STATE(203)] = 11215, - [SMALL_STATE(204)] = 11288, - [SMALL_STATE(205)] = 11365, - [SMALL_STATE(206)] = 11442, - [SMALL_STATE(207)] = 11494, - [SMALL_STATE(208)] = 11546, - [SMALL_STATE(209)] = 11593, - [SMALL_STATE(210)] = 11634, - [SMALL_STATE(211)] = 11675, - [SMALL_STATE(212)] = 11716, - [SMALL_STATE(213)] = 11757, - [SMALL_STATE(214)] = 11798, - [SMALL_STATE(215)] = 11837, - [SMALL_STATE(216)] = 11876, - [SMALL_STATE(217)] = 11915, - [SMALL_STATE(218)] = 11954, - [SMALL_STATE(219)] = 11993, - [SMALL_STATE(220)] = 12032, - [SMALL_STATE(221)] = 12071, - [SMALL_STATE(222)] = 12110, - [SMALL_STATE(223)] = 12149, - [SMALL_STATE(224)] = 12188, - [SMALL_STATE(225)] = 12229, - [SMALL_STATE(226)] = 12268, - [SMALL_STATE(227)] = 12307, - [SMALL_STATE(228)] = 12350, - [SMALL_STATE(229)] = 12409, - [SMALL_STATE(230)] = 12452, - [SMALL_STATE(231)] = 12493, - [SMALL_STATE(232)] = 12552, - [SMALL_STATE(233)] = 12597, - [SMALL_STATE(234)] = 12642, - [SMALL_STATE(235)] = 12701, - [SMALL_STATE(236)] = 12760, - [SMALL_STATE(237)] = 12819, - [SMALL_STATE(238)] = 12878, - [SMALL_STATE(239)] = 12937, - [SMALL_STATE(240)] = 12977, - [SMALL_STATE(241)] = 13013, - [SMALL_STATE(242)] = 13049, - [SMALL_STATE(243)] = 13085, - [SMALL_STATE(244)] = 13125, - [SMALL_STATE(245)] = 13161, - [SMALL_STATE(246)] = 13199, - [SMALL_STATE(247)] = 13235, - [SMALL_STATE(248)] = 13271, - [SMALL_STATE(249)] = 13311, - [SMALL_STATE(250)] = 13347, - [SMALL_STATE(251)] = 13383, - [SMALL_STATE(252)] = 13419, - [SMALL_STATE(253)] = 13455, - [SMALL_STATE(254)] = 13497, - [SMALL_STATE(255)] = 13533, - [SMALL_STATE(256)] = 13569, - [SMALL_STATE(257)] = 13605, - [SMALL_STATE(258)] = 13641, - [SMALL_STATE(259)] = 13677, - [SMALL_STATE(260)] = 13713, - [SMALL_STATE(261)] = 13749, - [SMALL_STATE(262)] = 13785, - [SMALL_STATE(263)] = 13827, - [SMALL_STATE(264)] = 13863, - [SMALL_STATE(265)] = 13899, - [SMALL_STATE(266)] = 13935, - [SMALL_STATE(267)] = 13971, - [SMALL_STATE(268)] = 14007, - [SMALL_STATE(269)] = 14043, - [SMALL_STATE(270)] = 14079, - [SMALL_STATE(271)] = 14116, - [SMALL_STATE(272)] = 14150, - [SMALL_STATE(273)] = 14184, - [SMALL_STATE(274)] = 14218, - [SMALL_STATE(275)] = 14252, - [SMALL_STATE(276)] = 14286, - [SMALL_STATE(277)] = 14333, - [SMALL_STATE(278)] = 14375, - [SMALL_STATE(279)] = 14407, - [SMALL_STATE(280)] = 14439, - [SMALL_STATE(281)] = 14473, - [SMALL_STATE(282)] = 14505, - [SMALL_STATE(283)] = 14537, - [SMALL_STATE(284)] = 14569, - [SMALL_STATE(285)] = 14603, - [SMALL_STATE(286)] = 14635, - [SMALL_STATE(287)] = 14667, - [SMALL_STATE(288)] = 14699, - [SMALL_STATE(289)] = 14731, - [SMALL_STATE(290)] = 14763, - [SMALL_STATE(291)] = 14795, - [SMALL_STATE(292)] = 14827, - [SMALL_STATE(293)] = 14864, - [SMALL_STATE(294)] = 14901, - [SMALL_STATE(295)] = 14934, - [SMALL_STATE(296)] = 14964, - [SMALL_STATE(297)] = 14993, - [SMALL_STATE(298)] = 15022, - [SMALL_STATE(299)] = 15050, - [SMALL_STATE(300)] = 15082, - [SMALL_STATE(301)] = 15124, - [SMALL_STATE(302)] = 15152, - [SMALL_STATE(303)] = 15186, - [SMALL_STATE(304)] = 15220, - [SMALL_STATE(305)] = 15260, - [SMALL_STATE(306)] = 15303, - [SMALL_STATE(307)] = 15336, - [SMALL_STATE(308)] = 15369, - [SMALL_STATE(309)] = 15412, - [SMALL_STATE(310)] = 15455, - [SMALL_STATE(311)] = 15486, - [SMALL_STATE(312)] = 15529, - [SMALL_STATE(313)] = 15572, - [SMALL_STATE(314)] = 15615, - [SMALL_STATE(315)] = 15658, - [SMALL_STATE(316)] = 15701, - [SMALL_STATE(317)] = 15744, - [SMALL_STATE(318)] = 15787, - [SMALL_STATE(319)] = 15817, - [SMALL_STATE(320)] = 15845, - [SMALL_STATE(321)] = 15873, - [SMALL_STATE(322)] = 15907, - [SMALL_STATE(323)] = 15935, - [SMALL_STATE(324)] = 15963, - [SMALL_STATE(325)] = 15988, - [SMALL_STATE(326)] = 16019, - [SMALL_STATE(327)] = 16056, - [SMALL_STATE(328)] = 16087, - [SMALL_STATE(329)] = 16112, - [SMALL_STATE(330)] = 16149, - [SMALL_STATE(331)] = 16186, - [SMALL_STATE(332)] = 16223, - [SMALL_STATE(333)] = 16260, - [SMALL_STATE(334)] = 16297, - [SMALL_STATE(335)] = 16322, - [SMALL_STATE(336)] = 16347, - [SMALL_STATE(337)] = 16375, - [SMALL_STATE(338)] = 16409, - [SMALL_STATE(339)] = 16437, - [SMALL_STATE(340)] = 16471, - [SMALL_STATE(341)] = 16505, - [SMALL_STATE(342)] = 16539, - [SMALL_STATE(343)] = 16575, - [SMALL_STATE(344)] = 16609, - [SMALL_STATE(345)] = 16643, - [SMALL_STATE(346)] = 16671, - [SMALL_STATE(347)] = 16705, - [SMALL_STATE(348)] = 16739, - [SMALL_STATE(349)] = 16775, - [SMALL_STATE(350)] = 16811, - [SMALL_STATE(351)] = 16845, - [SMALL_STATE(352)] = 16879, - [SMALL_STATE(353)] = 16905, - [SMALL_STATE(354)] = 16939, - [SMALL_STATE(355)] = 16973, - [SMALL_STATE(356)] = 16998, - [SMALL_STATE(357)] = 17023, - [SMALL_STATE(358)] = 17048, - [SMALL_STATE(359)] = 17073, - [SMALL_STATE(360)] = 17095, - [SMALL_STATE(361)] = 17125, - [SMALL_STATE(362)] = 17155, - [SMALL_STATE(363)] = 17185, - [SMALL_STATE(364)] = 17215, - [SMALL_STATE(365)] = 17245, - [SMALL_STATE(366)] = 17262, - [SMALL_STATE(367)] = 17287, - [SMALL_STATE(368)] = 17312, - [SMALL_STATE(369)] = 17332, - [SMALL_STATE(370)] = 17344, - [SMALL_STATE(371)] = 17356, - [SMALL_STATE(372)] = 17368, - [SMALL_STATE(373)] = 17382, - [SMALL_STATE(374)] = 17395, - [SMALL_STATE(375)] = 17408, - [SMALL_STATE(376)] = 17421, - [SMALL_STATE(377)] = 17434, - [SMALL_STATE(378)] = 17447, - [SMALL_STATE(379)] = 17460, - [SMALL_STATE(380)] = 17473, - [SMALL_STATE(381)] = 17486, - [SMALL_STATE(382)] = 17499, - [SMALL_STATE(383)] = 17512, - [SMALL_STATE(384)] = 17523, - [SMALL_STATE(385)] = 17536, - [SMALL_STATE(386)] = 17549, - [SMALL_STATE(387)] = 17562, - [SMALL_STATE(388)] = 17573, - [SMALL_STATE(389)] = 17584, - [SMALL_STATE(390)] = 17597, - [SMALL_STATE(391)] = 17610, - [SMALL_STATE(392)] = 17623, - [SMALL_STATE(393)] = 17636, - [SMALL_STATE(394)] = 17646, - [SMALL_STATE(395)] = 17656, - [SMALL_STATE(396)] = 17664, - [SMALL_STATE(397)] = 17674, - [SMALL_STATE(398)] = 17684, - [SMALL_STATE(399)] = 17694, - [SMALL_STATE(400)] = 17702, - [SMALL_STATE(401)] = 17712, - [SMALL_STATE(402)] = 17722, - [SMALL_STATE(403)] = 17732, - [SMALL_STATE(404)] = 17742, - [SMALL_STATE(405)] = 17752, - [SMALL_STATE(406)] = 17760, - [SMALL_STATE(407)] = 17768, - [SMALL_STATE(408)] = 17778, - [SMALL_STATE(409)] = 17788, - [SMALL_STATE(410)] = 17796, - [SMALL_STATE(411)] = 17806, - [SMALL_STATE(412)] = 17816, - [SMALL_STATE(413)] = 17823, - [SMALL_STATE(414)] = 17830, - [SMALL_STATE(415)] = 17837, - [SMALL_STATE(416)] = 17844, - [SMALL_STATE(417)] = 17851, - [SMALL_STATE(418)] = 17858, - [SMALL_STATE(419)] = 17865, - [SMALL_STATE(420)] = 17872, - [SMALL_STATE(421)] = 17879, - [SMALL_STATE(422)] = 17886, - [SMALL_STATE(423)] = 17893, - [SMALL_STATE(424)] = 17900, - [SMALL_STATE(425)] = 17907, - [SMALL_STATE(426)] = 17914, - [SMALL_STATE(427)] = 17921, - [SMALL_STATE(428)] = 17928, - [SMALL_STATE(429)] = 17935, - [SMALL_STATE(430)] = 17942, - [SMALL_STATE(431)] = 17949, - [SMALL_STATE(432)] = 17956, - [SMALL_STATE(433)] = 17963, - [SMALL_STATE(434)] = 17970, - [SMALL_STATE(435)] = 17977, - [SMALL_STATE(436)] = 17984, - [SMALL_STATE(437)] = 17991, - [SMALL_STATE(438)] = 17998, - [SMALL_STATE(439)] = 18005, - [SMALL_STATE(440)] = 18012, - [SMALL_STATE(441)] = 18019, - [SMALL_STATE(442)] = 18026, - [SMALL_STATE(443)] = 18033, - [SMALL_STATE(444)] = 18040, - [SMALL_STATE(445)] = 18047, - [SMALL_STATE(446)] = 18054, + [SMALL_STATE(42)] = 199, + [SMALL_STATE(43)] = 265, + [SMALL_STATE(44)] = 331, + [SMALL_STATE(45)] = 395, + [SMALL_STATE(46)] = 459, + [SMALL_STATE(47)] = 533, + [SMALL_STATE(48)] = 592, + [SMALL_STATE(49)] = 661, + [SMALL_STATE(50)] = 720, + [SMALL_STATE(51)] = 779, + [SMALL_STATE(52)] = 838, + [SMALL_STATE(53)] = 897, + [SMALL_STATE(54)] = 956, + [SMALL_STATE(55)] = 1015, + [SMALL_STATE(56)] = 1074, + [SMALL_STATE(57)] = 1133, + [SMALL_STATE(58)] = 1192, + [SMALL_STATE(59)] = 1251, + [SMALL_STATE(60)] = 1310, + [SMALL_STATE(61)] = 1369, + [SMALL_STATE(62)] = 1428, + [SMALL_STATE(63)] = 1487, + [SMALL_STATE(64)] = 1548, + [SMALL_STATE(65)] = 1607, + [SMALL_STATE(66)] = 1666, + [SMALL_STATE(67)] = 1725, + [SMALL_STATE(68)] = 1784, + [SMALL_STATE(69)] = 1843, + [SMALL_STATE(70)] = 1904, + [SMALL_STATE(71)] = 1967, + [SMALL_STATE(72)] = 2026, + [SMALL_STATE(73)] = 2085, + [SMALL_STATE(74)] = 2144, + [SMALL_STATE(75)] = 2203, + [SMALL_STATE(76)] = 2262, + [SMALL_STATE(77)] = 2321, + [SMALL_STATE(78)] = 2393, + [SMALL_STATE(79)] = 2455, + [SMALL_STATE(80)] = 2517, + [SMALL_STATE(81)] = 2587, + [SMALL_STATE(82)] = 2648, + [SMALL_STATE(83)] = 2707, + [SMALL_STATE(84)] = 2768, + [SMALL_STATE(85)] = 2827, + [SMALL_STATE(86)] = 2884, + [SMALL_STATE(87)] = 2944, + [SMALL_STATE(88)] = 3004, + [SMALL_STATE(89)] = 3062, + [SMALL_STATE(90)] = 3115, + [SMALL_STATE(91)] = 3168, + [SMALL_STATE(92)] = 3221, + [SMALL_STATE(93)] = 3278, + [SMALL_STATE(94)] = 3331, + [SMALL_STATE(95)] = 3384, + [SMALL_STATE(96)] = 3439, + [SMALL_STATE(97)] = 3492, + [SMALL_STATE(98)] = 3545, + [SMALL_STATE(99)] = 3598, + [SMALL_STATE(100)] = 3651, + [SMALL_STATE(101)] = 3704, + [SMALL_STATE(102)] = 3757, + [SMALL_STATE(103)] = 3810, + [SMALL_STATE(104)] = 3863, + [SMALL_STATE(105)] = 3916, + [SMALL_STATE(106)] = 3969, + [SMALL_STATE(107)] = 4022, + [SMALL_STATE(108)] = 4075, + [SMALL_STATE(109)] = 4128, + [SMALL_STATE(110)] = 4181, + [SMALL_STATE(111)] = 4234, + [SMALL_STATE(112)] = 4287, + [SMALL_STATE(113)] = 4342, + [SMALL_STATE(114)] = 4395, + [SMALL_STATE(115)] = 4448, + [SMALL_STATE(116)] = 4501, + [SMALL_STATE(117)] = 4554, + [SMALL_STATE(118)] = 4607, + [SMALL_STATE(119)] = 4673, + [SMALL_STATE(120)] = 4734, + [SMALL_STATE(121)] = 4824, + [SMALL_STATE(122)] = 4880, + [SMALL_STATE(123)] = 4936, + [SMALL_STATE(124)] = 5026, + [SMALL_STATE(125)] = 5116, + [SMALL_STATE(126)] = 5203, + [SMALL_STATE(127)] = 5292, + [SMALL_STATE(128)] = 5379, + [SMALL_STATE(129)] = 5466, + [SMALL_STATE(130)] = 5553, + [SMALL_STATE(131)] = 5642, + [SMALL_STATE(132)] = 5729, + [SMALL_STATE(133)] = 5816, + [SMALL_STATE(134)] = 5903, + [SMALL_STATE(135)] = 5990, + [SMALL_STATE(136)] = 6077, + [SMALL_STATE(137)] = 6164, + [SMALL_STATE(138)] = 6253, + [SMALL_STATE(139)] = 6342, + [SMALL_STATE(140)] = 6429, + [SMALL_STATE(141)] = 6480, + [SMALL_STATE(142)] = 6569, + [SMALL_STATE(143)] = 6656, + [SMALL_STATE(144)] = 6743, + [SMALL_STATE(145)] = 6830, + [SMALL_STATE(146)] = 6919, + [SMALL_STATE(147)] = 7006, + [SMALL_STATE(148)] = 7095, + [SMALL_STATE(149)] = 7182, + [SMALL_STATE(150)] = 7269, + [SMALL_STATE(151)] = 7356, + [SMALL_STATE(152)] = 7445, + [SMALL_STATE(153)] = 7532, + [SMALL_STATE(154)] = 7621, + [SMALL_STATE(155)] = 7683, + [SMALL_STATE(156)] = 7747, + [SMALL_STATE(157)] = 7828, + [SMALL_STATE(158)] = 7909, + [SMALL_STATE(159)] = 7990, + [SMALL_STATE(160)] = 8071, + [SMALL_STATE(161)] = 8152, + [SMALL_STATE(162)] = 8233, + [SMALL_STATE(163)] = 8310, + [SMALL_STATE(164)] = 8387, + [SMALL_STATE(165)] = 8468, + [SMALL_STATE(166)] = 8545, + [SMALL_STATE(167)] = 8626, + [SMALL_STATE(168)] = 8707, + [SMALL_STATE(169)] = 8788, + [SMALL_STATE(170)] = 8869, + [SMALL_STATE(171)] = 8950, + [SMALL_STATE(172)] = 9031, + [SMALL_STATE(173)] = 9112, + [SMALL_STATE(174)] = 9175, + [SMALL_STATE(175)] = 9254, + [SMALL_STATE(176)] = 9335, + [SMALL_STATE(177)] = 9412, + [SMALL_STATE(178)] = 9493, + [SMALL_STATE(179)] = 9574, + [SMALL_STATE(180)] = 9655, + [SMALL_STATE(181)] = 9736, + [SMALL_STATE(182)] = 9813, + [SMALL_STATE(183)] = 9892, + [SMALL_STATE(184)] = 9973, + [SMALL_STATE(185)] = 10050, + [SMALL_STATE(186)] = 10113, + [SMALL_STATE(187)] = 10194, + [SMALL_STATE(188)] = 10275, + [SMALL_STATE(189)] = 10354, + [SMALL_STATE(190)] = 10435, + [SMALL_STATE(191)] = 10516, + [SMALL_STATE(192)] = 10597, + [SMALL_STATE(193)] = 10676, + [SMALL_STATE(194)] = 10757, + [SMALL_STATE(195)] = 10838, + [SMALL_STATE(196)] = 10919, + [SMALL_STATE(197)] = 11000, + [SMALL_STATE(198)] = 11081, + [SMALL_STATE(199)] = 11162, + [SMALL_STATE(200)] = 11243, + [SMALL_STATE(201)] = 11324, + [SMALL_STATE(202)] = 11405, + [SMALL_STATE(203)] = 11486, + [SMALL_STATE(204)] = 11567, + [SMALL_STATE(205)] = 11648, + [SMALL_STATE(206)] = 11729, + [SMALL_STATE(207)] = 11810, + [SMALL_STATE(208)] = 11891, + [SMALL_STATE(209)] = 11972, + [SMALL_STATE(210)] = 12053, + [SMALL_STATE(211)] = 12134, + [SMALL_STATE(212)] = 12211, + [SMALL_STATE(213)] = 12264, + [SMALL_STATE(214)] = 12317, + [SMALL_STATE(215)] = 12365, + [SMALL_STATE(216)] = 12407, + [SMALL_STATE(217)] = 12449, + [SMALL_STATE(218)] = 12491, + [SMALL_STATE(219)] = 12533, + [SMALL_STATE(220)] = 12575, + [SMALL_STATE(221)] = 12615, + [SMALL_STATE(222)] = 12655, + [SMALL_STATE(223)] = 12695, + [SMALL_STATE(224)] = 12735, + [SMALL_STATE(225)] = 12775, + [SMALL_STATE(226)] = 12815, + [SMALL_STATE(227)] = 12855, + [SMALL_STATE(228)] = 12895, + [SMALL_STATE(229)] = 12935, + [SMALL_STATE(230)] = 12975, + [SMALL_STATE(231)] = 13017, + [SMALL_STATE(232)] = 13057, + [SMALL_STATE(233)] = 13097, + [SMALL_STATE(234)] = 13160, + [SMALL_STATE(235)] = 13223, + [SMALL_STATE(236)] = 13286, + [SMALL_STATE(237)] = 13349, + [SMALL_STATE(238)] = 13412, + [SMALL_STATE(239)] = 13475, + [SMALL_STATE(240)] = 13538, + [SMALL_STATE(241)] = 13584, + [SMALL_STATE(242)] = 13630, + [SMALL_STATE(243)] = 13671, + [SMALL_STATE(244)] = 13712, + [SMALL_STATE(245)] = 13753, + [SMALL_STATE(246)] = 13796, + [SMALL_STATE(247)] = 13839, + [SMALL_STATE(248)] = 13876, + [SMALL_STATE(249)] = 13912, + [SMALL_STATE(250)] = 13948, + [SMALL_STATE(251)] = 13990, + [SMALL_STATE(252)] = 14026, + [SMALL_STATE(253)] = 14062, + [SMALL_STATE(254)] = 14098, + [SMALL_STATE(255)] = 14134, + [SMALL_STATE(256)] = 14170, + [SMALL_STATE(257)] = 14206, + [SMALL_STATE(258)] = 14242, + [SMALL_STATE(259)] = 14278, + [SMALL_STATE(260)] = 14314, + [SMALL_STATE(261)] = 14350, + [SMALL_STATE(262)] = 14386, + [SMALL_STATE(263)] = 14422, + [SMALL_STATE(264)] = 14458, + [SMALL_STATE(265)] = 14494, + [SMALL_STATE(266)] = 14530, + [SMALL_STATE(267)] = 14566, + [SMALL_STATE(268)] = 14608, + [SMALL_STATE(269)] = 14644, + [SMALL_STATE(270)] = 14680, + [SMALL_STATE(271)] = 14718, + [SMALL_STATE(272)] = 14754, + [SMALL_STATE(273)] = 14794, + [SMALL_STATE(274)] = 14830, + [SMALL_STATE(275)] = 14866, + [SMALL_STATE(276)] = 14902, + [SMALL_STATE(277)] = 14942, + [SMALL_STATE(278)] = 14978, + [SMALL_STATE(279)] = 15014, + [SMALL_STATE(280)] = 15049, + [SMALL_STATE(281)] = 15084, + [SMALL_STATE(282)] = 15121, + [SMALL_STATE(283)] = 15156, + [SMALL_STATE(284)] = 15191, + [SMALL_STATE(285)] = 15226, + [SMALL_STATE(286)] = 15259, + [SMALL_STATE(287)] = 15292, + [SMALL_STATE(288)] = 15325, + [SMALL_STATE(289)] = 15358, + [SMALL_STATE(290)] = 15391, + [SMALL_STATE(291)] = 15424, + [SMALL_STATE(292)] = 15457, + [SMALL_STATE(293)] = 15490, + [SMALL_STATE(294)] = 15523, + [SMALL_STATE(295)] = 15556, + [SMALL_STATE(296)] = 15591, + [SMALL_STATE(297)] = 15624, + [SMALL_STATE(298)] = 15671, + [SMALL_STATE(299)] = 15704, + [SMALL_STATE(300)] = 15738, + [SMALL_STATE(301)] = 15780, + [SMALL_STATE(302)] = 15814, + [SMALL_STATE(303)] = 15851, + [SMALL_STATE(304)] = 15888, + [SMALL_STATE(305)] = 15919, + [SMALL_STATE(306)] = 15949, + [SMALL_STATE(307)] = 15979, + [SMALL_STATE(308)] = 16008, + [SMALL_STATE(309)] = 16037, + [SMALL_STATE(310)] = 16071, + [SMALL_STATE(311)] = 16105, + [SMALL_STATE(312)] = 16137, + [SMALL_STATE(313)] = 16177, + [SMALL_STATE(314)] = 16219, + [SMALL_STATE(315)] = 16262, + [SMALL_STATE(316)] = 16295, + [SMALL_STATE(317)] = 16338, + [SMALL_STATE(318)] = 16381, + [SMALL_STATE(319)] = 16424, + [SMALL_STATE(320)] = 16467, + [SMALL_STATE(321)] = 16510, + [SMALL_STATE(322)] = 16541, + [SMALL_STATE(323)] = 16584, + [SMALL_STATE(324)] = 16627, + [SMALL_STATE(325)] = 16670, + [SMALL_STATE(326)] = 16713, + [SMALL_STATE(327)] = 16746, + [SMALL_STATE(328)] = 16774, + [SMALL_STATE(329)] = 16802, + [SMALL_STATE(330)] = 16836, + [SMALL_STATE(331)] = 16864, + [SMALL_STATE(332)] = 16892, + [SMALL_STATE(333)] = 16922, + [SMALL_STATE(334)] = 16953, + [SMALL_STATE(335)] = 16978, + [SMALL_STATE(336)] = 17015, + [SMALL_STATE(337)] = 17052, + [SMALL_STATE(338)] = 17077, + [SMALL_STATE(339)] = 17102, + [SMALL_STATE(340)] = 17133, + [SMALL_STATE(341)] = 17170, + [SMALL_STATE(342)] = 17207, + [SMALL_STATE(343)] = 17244, + [SMALL_STATE(344)] = 17269, + [SMALL_STATE(345)] = 17306, + [SMALL_STATE(346)] = 17340, + [SMALL_STATE(347)] = 17374, + [SMALL_STATE(348)] = 17402, + [SMALL_STATE(349)] = 17430, + [SMALL_STATE(350)] = 17456, + [SMALL_STATE(351)] = 17492, + [SMALL_STATE(352)] = 17526, + [SMALL_STATE(353)] = 17560, + [SMALL_STATE(354)] = 17594, + [SMALL_STATE(355)] = 17628, + [SMALL_STATE(356)] = 17656, + [SMALL_STATE(357)] = 17690, + [SMALL_STATE(358)] = 17726, + [SMALL_STATE(359)] = 17760, + [SMALL_STATE(360)] = 17794, + [SMALL_STATE(361)] = 17828, + [SMALL_STATE(362)] = 17864, + [SMALL_STATE(363)] = 17898, + [SMALL_STATE(364)] = 17932, + [SMALL_STATE(365)] = 17957, + [SMALL_STATE(366)] = 17982, + [SMALL_STATE(367)] = 18007, + [SMALL_STATE(368)] = 18032, + [SMALL_STATE(369)] = 18062, + [SMALL_STATE(370)] = 18092, + [SMALL_STATE(371)] = 18114, + [SMALL_STATE(372)] = 18144, + [SMALL_STATE(373)] = 18174, + [SMALL_STATE(374)] = 18204, + [SMALL_STATE(375)] = 18221, + [SMALL_STATE(376)] = 18246, + [SMALL_STATE(377)] = 18271, + [SMALL_STATE(378)] = 18283, + [SMALL_STATE(379)] = 18295, + [SMALL_STATE(380)] = 18307, + [SMALL_STATE(381)] = 18321, + [SMALL_STATE(382)] = 18334, + [SMALL_STATE(383)] = 18347, + [SMALL_STATE(384)] = 18360, + [SMALL_STATE(385)] = 18373, + [SMALL_STATE(386)] = 18384, + [SMALL_STATE(387)] = 18397, + [SMALL_STATE(388)] = 18408, + [SMALL_STATE(389)] = 18421, + [SMALL_STATE(390)] = 18434, + [SMALL_STATE(391)] = 18447, + [SMALL_STATE(392)] = 18460, + [SMALL_STATE(393)] = 18473, + [SMALL_STATE(394)] = 18486, + [SMALL_STATE(395)] = 18499, + [SMALL_STATE(396)] = 18512, + [SMALL_STATE(397)] = 18525, + [SMALL_STATE(398)] = 18538, + [SMALL_STATE(399)] = 18551, + [SMALL_STATE(400)] = 18564, + [SMALL_STATE(401)] = 18575, + [SMALL_STATE(402)] = 18588, + [SMALL_STATE(403)] = 18596, + [SMALL_STATE(404)] = 18606, + [SMALL_STATE(405)] = 18614, + [SMALL_STATE(406)] = 18622, + [SMALL_STATE(407)] = 18632, + [SMALL_STATE(408)] = 18642, + [SMALL_STATE(409)] = 18652, + [SMALL_STATE(410)] = 18662, + [SMALL_STATE(411)] = 18672, + [SMALL_STATE(412)] = 18682, + [SMALL_STATE(413)] = 18692, + [SMALL_STATE(414)] = 18702, + [SMALL_STATE(415)] = 18712, + [SMALL_STATE(416)] = 18722, + [SMALL_STATE(417)] = 18732, + [SMALL_STATE(418)] = 18742, + [SMALL_STATE(419)] = 18752, + [SMALL_STATE(420)] = 18762, + [SMALL_STATE(421)] = 18770, + [SMALL_STATE(422)] = 18780, + [SMALL_STATE(423)] = 18790, + [SMALL_STATE(424)] = 18797, + [SMALL_STATE(425)] = 18804, + [SMALL_STATE(426)] = 18811, + [SMALL_STATE(427)] = 18818, + [SMALL_STATE(428)] = 18825, + [SMALL_STATE(429)] = 18832, + [SMALL_STATE(430)] = 18839, + [SMALL_STATE(431)] = 18846, + [SMALL_STATE(432)] = 18853, + [SMALL_STATE(433)] = 18860, + [SMALL_STATE(434)] = 18867, + [SMALL_STATE(435)] = 18874, + [SMALL_STATE(436)] = 18881, + [SMALL_STATE(437)] = 18888, + [SMALL_STATE(438)] = 18895, + [SMALL_STATE(439)] = 18902, + [SMALL_STATE(440)] = 18909, + [SMALL_STATE(441)] = 18916, + [SMALL_STATE(442)] = 18923, + [SMALL_STATE(443)] = 18930, + [SMALL_STATE(444)] = 18937, + [SMALL_STATE(445)] = 18944, + [SMALL_STATE(446)] = 18951, + [SMALL_STATE(447)] = 18958, + [SMALL_STATE(448)] = 18965, + [SMALL_STATE(449)] = 18972, + [SMALL_STATE(450)] = 18979, + [SMALL_STATE(451)] = 18986, + [SMALL_STATE(452)] = 18993, + [SMALL_STATE(453)] = 19000, + [SMALL_STATE(454)] = 19007, + [SMALL_STATE(455)] = 19014, + [SMALL_STATE(456)] = 19021, + [SMALL_STATE(457)] = 19028, }; 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 = false}}, SHIFT(45), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(413), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), - [43] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(45), - [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(138), - [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(437), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(5), - [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(52), - [58] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(52), - [61] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(58), - [64] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(123), - [67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(413), - [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(72), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(429), - [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(205), - [79] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(188), - [82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(195), - [85] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(424), - [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(424), - [91] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(30), - [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(65), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), - [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276), - [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), - [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259), - [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), - [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187), - [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183), - [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(445), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), - [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), - [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(440), - [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), - [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(441), - [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), - [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(446), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), - [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logic, 3), - [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logic, 3), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_math, 3), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_math, 3), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 5), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 5), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_kind, 1), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_kind, 1), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_expression_kind, 1), - [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 1), - [223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_expression, 1), - [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_expression, 1), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_option, 4), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_option, 4), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4), - [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 4), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3), - [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5), - [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 1), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure, 4), - [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structure, 4), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 6), - [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_yield, 6), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_built_in_value, 1), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_built_in_value, 1), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3), - [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_yield, 3), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 3), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_expression, 3), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_expression, 3), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 3), - [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 3), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_option, 1), - [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_option, 1), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), - [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(301), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(298), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_expression_kind, 1), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [349] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(239), - [352] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(127), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), - [357] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(260), - [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(260), - [363] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(259), - [366] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(135), - [369] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(427), - [372] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(256), - [375] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(428), - [378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(419), - [381] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(240), - [384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [392] = {.entry = {.count = 1, .reusable = false}}, SHIFT(321), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [396] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [422] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(91), - [425] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(142), - [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), - [430] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(88), - [433] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(88), - [436] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(86), - [439] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(139), - [442] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(440), - [445] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(90), - [448] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(441), - [451] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(87), - [454] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(91), - [457] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(142), - [460] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(88), - [463] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(88), - [466] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(86), - [469] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(139), - [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [474] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(440), - [477] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(90), - [480] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(441), - [483] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(87), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list, 1), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list, 1), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [510] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(284), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [518] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), - [520] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [524] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [528] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), - [530] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 2), - [534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 2), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [538] = {.entry = {.count = 1, .reusable = false}}, SHIFT(375), - [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 1), - [542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 1), - [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), - [546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_else_repeat1, 2), - [548] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), SHIFT_REPEAT(173), - [551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 3), - [553] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 3), - [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_if, 3), - [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_if, 3), - [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 3), - [561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 3), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else, 2), - [565] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else, 2), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4), - [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4), - [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match, 5), - [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match, 5), - [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for, 5), - [577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for, 5), - [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return, 2), - [581] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return, 2), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 2), - [585] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 2), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_assignment, 3), - [589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_assignment, 3), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while, 3), - [593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while, 3), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3), - [597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 3), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [601] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), - [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386), - [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [617] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), SHIFT_REPEAT(175), - [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_operator, 1), - [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_operator, 1), - [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 3), - [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 3), - [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), - [636] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 4), - [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 4), - [640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), - [642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [644] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logic_operator, 1), - [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logic_operator, 1), - [648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_math_operator, 1), - [650] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_math_operator, 1), - [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), - [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), - [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), - [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), - [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [668] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 3), - [670] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 3), - [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 2), - [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), - [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 1), - [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), - [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [700] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 5), - [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 5), - [704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 4), - [706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4), - [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [712] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(324), - [715] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(348), - [718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), - [720] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(442), - [723] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(364), - [726] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(439), - [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), - [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), - [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439), - [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [747] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 1), - [749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 1), - [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), - [759] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 3), - [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 3), - [763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(382), - [765] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 1), - [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), - [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 2), - [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [783] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 2), SHIFT_REPEAT(368), - [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), - [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [790] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), SHIFT_REPEAT(401), - [793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), - [795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), - [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 4), - [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), - [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), - [803] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 3), - [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 3), - [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_repeat1, 5), - [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [827] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), - [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), - [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), - [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), - [873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), - [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(449), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(444), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(447), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(430), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), + [45] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(46), + [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(151), + [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(449), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(4), + [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(55), + [60] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(55), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(62), + [66] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(134), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(414), + [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(444), + [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(67), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(447), + [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(164), + [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(206), + [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(207), + [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(430), + [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(430), + [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(31), + [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(76), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(436), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), + [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(408), + [152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453), + [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194), + [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(175), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(156), + [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(457), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93), + [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(297), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(412), + [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(442), + [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(278), + [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), + [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), + [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(456), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(277), + [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 5), + [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 5), + [210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logic, 3), + [212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logic, 3), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_math, 3), + [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_math, 3), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure, 2), + [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structure, 2), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_kind, 1), + [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_kind, 1), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_expression_kind, 1), + [234] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 1), + [238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_definition, 2), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structure_definition, 2), + [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_yield, 3), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4), + [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), + [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5), + [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure, 3), + [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structure, 3), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4), + [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 4), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), + [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4), + [292] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structure_instantiator, 3), + [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structure_instantiator, 3), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), + [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 6), + [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_yield, 6), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3), + [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_expression, 1), + [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_expression, 1), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_option, 1), + [316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_option, 1), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_option, 4), + [320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_option, 4), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 1), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3), + [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 3), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_expression, 3), + [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_expression, 3), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 3), + [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 3), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_built_in_value, 1), + [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_built_in_value, 1), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), + [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [358] = {.entry = {.count = 1, .reusable = false}}, SHIFT(307), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_expression_kind, 1), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [372] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(276), + [375] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(147), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), + [380] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(273), + [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(273), + [386] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(275), + [389] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(152), + [392] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(412), + [395] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(442), + [398] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(278), + [401] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(424), + [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(450), + [407] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 2), SHIFT_REPEAT(277), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [412] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [420] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [424] = {.entry = {.count = 1, .reusable = false}}, SHIFT(329), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [432] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(92), + [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(153), + [438] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(98), + [441] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(98), + [444] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(97), + [447] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(132), + [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [452] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(408), + [455] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(453), + [458] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(96), + [461] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(452), + [464] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(93), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [481] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(92), + [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(153), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), + [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(98), + [492] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(98), + [495] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(97), + [498] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(132), + [501] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(408), + [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(453), + [507] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(96), + [510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(452), + [513] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), SHIFT_REPEAT(93), + [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [532] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [534] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332), + [536] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [540] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [544] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list, 1), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list, 1), + [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [554] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [556] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299), + [558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), + [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [564] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 2), + [568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 2), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 1), + [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 1), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), + [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_else_repeat1, 2), + [582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), SHIFT_REPEAT(200), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 3), + [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 3), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_if, 3), + [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_if, 3), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_assignment, 3), + [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_assignment, 3), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while, 3), + [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while, 3), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4), + [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 2), + [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 2), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return, 2), + [611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return, 2), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else, 2), + [615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else, 2), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3), + [619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 3), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else, 3), + [623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else, 3), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for, 5), + [627] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for, 5), + [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match, 5), + [631] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match, 5), + [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), + [649] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_else_repeat1, 2), SHIFT_REPEAT(180), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [656] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_operator, 1), + [658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_operator, 1), + [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [664] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 3), + [666] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 3), + [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [672] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_match_repeat1, 4), + [674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_repeat1, 4), + [676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list, 2), + [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), + [680] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logic_operator, 1), + [682] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logic_operator, 1), + [684] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_math_operator, 1), + [686] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_math_operator, 1), + [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), + [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 3), + [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 3), + [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [712] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 2), + [714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [724] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 1), + [726] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), + [728] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 5), + [730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 5), + [732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [738] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 4), + [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [748] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), + [750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(446), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [762] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(337), + [765] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(361), + [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), + [770] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(429), + [773] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(373), + [776] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(446), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [783] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 1), + [785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 1), + [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [793] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), + [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 3), + [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 3), + [799] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), + [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_instantiator_repeat1, 2), + [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), + [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [819] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_instantiator_repeat1, 3), + [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), + [825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), SHIFT_REPEAT(406), + [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), + [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_structure_instantiator_repeat1, 2), SHIFT_REPEAT(397), + [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_instantiator_repeat1, 4), + [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 3), + [847] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_structure_instantiator_repeat1, 5), + [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [875] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), + [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), }; #ifdef __cplusplus