DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "h", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 10, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 11, }, return_type: FunctionLikeReturnTypeDefinition { colon: 12, type_definition: Void( Keyword { value: "void", position: 14, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 19, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ArrayOperation( Access { comments: CommentGroup { comments: [], }, array: Variable( Variable { position: 25, name: "$foo", }, ), left_bracket: 29, index: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'bar'", position: 30, }, ), ), right_bracket: 35, }, ), semicolon: 36, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ArrayOperation( Access { comments: CommentGroup { comments: [], }, array: ArrayOperation( Access { comments: CommentGroup { comments: [], }, array: Variable( Variable { position: 42, name: "$foo", }, ), left_bracket: 46, index: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'bar'", position: 47, }, ), ), right_bracket: 52, }, ), left_bracket: 53, index: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'baz'", position: 54, }, ), ), right_bracket: 59, }, ), semicolon: 60, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: ArrayOperation( Access { comments: CommentGroup { comments: [], }, array: Variable( Variable { position: 66, name: "$foo", }, ), left_bracket: 70, index: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'bar'", position: 71, }, ), ), right_bracket: 76, }, ), equals: 78, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'baz'", position: 80, }, ), ), }, ), semicolon: 85, }, ), ], right_brace: 87, }, }, ), ], eof: 89, }