DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "bar", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 12, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 13, }, return_type: FunctionLikeReturnTypeDefinition { colon: 14, type_definition: Void( Keyword { value: "void", position: 16, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 21, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 27, name: "$c", }, ), equals: 30, right: Match( MatchExpression { comments: CommentGroup { comments: [], }, match: Keyword { value: "match", position: 32, }, expression: None, body: MatchBodyExpression { left_brace: 38, arms: CommaSeparated { inner: [ MatchArmExpression { condition: Expressions( CommaSeparated { inner: [ ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 48, name: "$a", }, ), double_equals: 51, right: Variable( Variable { position: 54, name: "$b", }, ), }, ), ], commas: [], }, ), arrow: 57, expression: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a is equal to b'", position: 60, }, ), ), }, MatchArmExpression { condition: Expressions( CommaSeparated { inner: [ ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 87, name: "$a", }, ), greater_than: 90, right: Variable( Variable { position: 92, name: "$b", }, ), }, ), ], commas: [], }, ), arrow: 95, expression: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a is greater than b'", position: 98, }, ), ), }, MatchArmExpression { condition: Expressions( CommaSeparated { inner: [ ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 129, name: "$a", }, ), less_than: 132, right: Variable( Variable { position: 134, name: "$b", }, ), }, ), ], commas: [], }, ), arrow: 137, expression: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a is less than b'", position: 140, }, ), ), }, MatchArmExpression { condition: Default( Keyword { value: "default", position: 168, }, ), arrow: 176, expression: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a and b are not comparable'", position: 179, }, ), ), }, MatchArmExpression { condition: Default( Keyword { value: "default", position: 217, }, ), arrow: 225, expression: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a and b are not comparable'", position: 228, }, ), ), }, ], commas: [ 77, 119, 158, 207, 256, ], }, right_brace: 301, }, }, ), }, ), semicolon: 302, }, ), ], right_brace: 304, }, }, ), ], eof: 306, }