@ ProgramNode (location: (1,0)-(1,45)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,45)) └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,45)) ├── name: :some_method ├── name_loc: (1,6)-(1,17) = "some_method" ├── receiver: │ @ CallNode (location: (1,4)-(1,5)) │ ├── flags: variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :x │ ├── message_loc: (1,4)-(1,5) = "x" │ ├── opening_loc: ∅ │ ├── arguments: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,20)-(1,45)) │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (1,20)-(1,45)) │ ├── expression: │ │ @ CallNode (location: (1,20)-(1,35)) │ │ ├── flags: ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :other_method │ │ ├── message_loc: (1,20)-(1,32) = "other_method" │ │ ├── opening_loc: ∅ │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (1,33)-(1,35)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (1,33)-(1,35)) │ │ │ ├── flags: decimal │ │ │ └── value: 42 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── keyword_loc: (1,36)-(1,42) = "rescue" │ └── rescue_expression: │ @ IntegerNode (location: (1,43)-(1,45)) │ ├── flags: decimal │ └── value: 24 ├── locals: [] ├── def_keyword_loc: (1,0)-(1,3) = "def" ├── operator_loc: (1,5)-(1,6) = "." ├── lparen_loc: ∅ ├── rparen_loc: ∅ ├── equal_loc: (1,18)-(1,19) = "=" └── end_keyword_loc: ∅