//! > Test parsing code, without trivia.
//! > test_runner_name
test_full_parser_tree(expect_diagnostics: *)
//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test3.cairo
//! > print_trivia
false
//! > print_colors
false
//! > expected_diagnostics
//! > expected_tree
└── root (kind: SyntaxFile)
├── items (kind: ModuleItemList)
│ ├── child #0 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'main'
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList) []
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── statements (kind: StatementList)
│ │ │ └── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'fib'
│ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TokenLiteralNumber): '1'
│ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TokenLiteralNumber): '1'
│ │ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ └── value (kind: TokenLiteralNumber): '13'
│ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TokenRBrace): '}'
│ ├── child #1 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'fib'
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TokenIdentifier): 'a'
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ ├── item #1 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TokenIdentifier): 'b'
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ └── item #2 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'n'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── statements (kind: StatementList)
│ │ │ ├── child #0 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'gas'
│ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'withdraw_gas'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #1 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprInlineMacro)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'some_macro'
│ │ │ │ │ ├── bang (kind: TokenNot): '!'
│ │ │ │ │ └── arguments (kind: TokenTreeNode)
│ │ │ │ │ └── subtree (kind: ParenthesizedTokenTree)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── tokens (kind: TokenList) []
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ └── child #2 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprMatch)
│ │ │ │ ├── match_kw (kind: TokenMatch): 'match'
│ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'n'
│ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: TokenUnderscore): '_'
│ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'fib'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ │ ├── op (kind: TokenPlus): '+'
│ │ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'n'
│ │ │ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ │ │ └── rhs (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ └── separator #1 (kind: TokenComma): ','
│ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TokenRBrace): '}'
│ └── child #2 (kind: FunctionWithBody)
│ ├── attributes (kind: AttributeList) []
│ ├── visibility (kind: VisibilityPub)
│ │ ├── pub_kw (kind: TokenPub): 'pub'
│ │ └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
│ ├── declaration (kind: FunctionDeclaration)
│ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ ├── name (kind: TokenIdentifier): 'fib_tuple'
│ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ └── signature (kind: FunctionSignature)
│ │ ├── lparen (kind: TokenLParen): '('
│ │ ├── parameters (kind: ParamList)
│ │ │ ├── item #0 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'a'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ ├── item #1 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'b'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ └── item #2 (kind: Param)
│ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ ├── name (kind: TokenIdentifier): 'n'
│ │ │ └── type_clause (kind: TypeClause)
│ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ └── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ ├── rparen (kind: TokenRParen): ')'
│ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ └── ty (kind: ExprListParenthesized)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── expressions (kind: ExprList)
│ │ │ │ ├── item #0 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ └── item #1 (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ └── rparen (kind: TokenRParen): ')'
│ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ └── body (kind: ExprBlock)
│ ├── lbrace (kind: TokenLBrace): '{'
│ ├── statements (kind: StatementList)
│ │ ├── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprErrorPropagate)
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'gas'
│ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'withdraw_gas'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ └── child #1 (kind: StatementExpr)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── expr (kind: ExprMatch)
│ │ │ ├── match_kw (kind: TokenMatch): 'match'
│ │ │ ├── expr (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'n'
│ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ ├── arms (kind: MatchArms)
│ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ └── item #0 (kind: TokenLiteralNumber): '0'
│ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ └── expression (kind: ExprListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── expressions (kind: ExprList)
│ │ │ │ │ │ ├── item #0 (kind: ExprFunctionCall)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ └── item #1 (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ └── item #0 (kind: TokenUnderscore): '_'
│ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'fib_tuple'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ ├── op (kind: TokenPlus): '+'
│ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'n'
│ │ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ │ └── rhs (kind: TokenLiteralNumber): '1'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── separator #1 (kind: TokenComma): ','
│ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ └── rbrace (kind: TokenRBrace): '}'
└── eof (kind: TokenEndOfFile).
//! > ==========================================================================
//! > Test parsing code, with trivia.
//! > test_runner_name
test_full_parser_tree(expect_diagnostics: *)
//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test3.cairo
//! > print_trivia
true
//! > print_colors
false
//! > expected_diagnostics
//! > expected_tree
└── root (kind: SyntaxFile)
├── items (kind: ModuleItemList)
│ ├── child #0 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'main'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── statements (kind: StatementList)
│ │ │ └── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'fib'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ └── value (kind: TerminalLiteralNumber)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLiteralNumber): '13'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #1 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ ├── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── child #1 (kind: TokenSingleLineDocComment): '/// Calculates fib...'
│ │ │ │ │ └── child #2 (kind: TokenNewline).
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'fib'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── item #1 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── item #2 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── statements (kind: StatementList)
│ │ │ ├── child #0 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'gas'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'withdraw_gas'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #1 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprInlineMacro)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'some_macro'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── bang (kind: TerminalNot)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenNot): '!'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: TokenTreeNode)
│ │ │ │ │ └── subtree (kind: ParenthesizedTokenTree)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── tokens (kind: TokenList) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── child #2 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprMatch)
│ │ │ │ ├── match_kw (kind: TerminalMatch)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenMatch): 'match'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: TerminalUnderscore)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'fib'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── op (kind: TerminalPlus)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenPlus): '+'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── rhs (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── separator #1 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ └── child #2 (kind: FunctionWithBody)
│ ├── attributes (kind: AttributeList) []
│ ├── visibility (kind: VisibilityPub)
│ │ ├── pub_kw (kind: TerminalPub)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── token (kind: TokenPub): 'pub'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
│ ├── declaration (kind: FunctionDeclaration)
│ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ ├── function_kw (kind: TerminalFunction)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'fib_tuple'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ └── signature (kind: FunctionSignature)
│ │ ├── lparen (kind: TerminalLParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLParen): '('
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── parameters (kind: ParamList)
│ │ │ ├── item #0 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── item #1 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ └── item #2 (kind: Param)
│ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── type_clause (kind: TypeClause)
│ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ └── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── rparen (kind: TerminalRParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ └── ty (kind: ExprListParenthesized)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── expressions (kind: ExprList)
│ │ │ │ ├── item #0 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── item #1 (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rparen (kind: TerminalRParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ └── body (kind: ExprBlock)
│ ├── lbrace (kind: TerminalLBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenLBrace): '{'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── statements (kind: StatementList)
│ │ ├── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprErrorPropagate)
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'gas'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'withdraw_gas'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ └── child #1 (kind: StatementExpr)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── expr (kind: ExprMatch)
│ │ │ ├── match_kw (kind: TerminalMatch)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── token (kind: TokenMatch): 'match'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── expr (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── arms (kind: MatchArms)
│ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ └── item #0 (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── expression (kind: ExprListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── expressions (kind: ExprList)
│ │ │ │ │ │ ├── item #0 (kind: ExprFunctionCall)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── item #1 (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ └── item #0 (kind: TerminalUnderscore)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── expression (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'fib_tuple'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── op (kind: TerminalPlus)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenPlus): '+'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'n'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── rhs (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── separator #1 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ └── rbrace (kind: TerminalRBrace)
│ ├── leading_trivia (kind: Trivia) []
│ ├── token (kind: TokenRBrace): '}'
│ └── trailing_trivia (kind: Trivia)
│ └── child #0 (kind: TokenNewline).
└── eof (kind: TerminalEndOfFile)
├── leading_trivia (kind: Trivia) []
├── token (kind: TokenEndOfFile).
└── trailing_trivia (kind: Trivia) []