@ ProgramNode (location: (1,0)-(3,25)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,25)) └── body: (length: 2) ├── @ DefNode (location: (1,0)-(1,20)) │ ├── name: :m │ ├── name_loc: (1,4)-(1,5) = "m" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,10)-(1,20)) │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (1,10)-(1,20)) │ │ ├── expression: │ │ │ @ IntegerNode (location: (1,10)-(1,11)) │ │ │ ├── flags: decimal │ │ │ └── value: 1 │ │ ├── keyword_loc: (1,12)-(1,18) = "rescue" │ │ └── rescue_expression: │ │ @ IntegerNode (location: (1,19)-(1,20)) │ │ ├── flags: decimal │ │ └── value: 2 │ ├── locals: [] │ ├── def_keyword_loc: (1,0)-(1,3) = "def" │ ├── operator_loc: ∅ │ ├── lparen_loc: (1,5)-(1,6) = "(" │ ├── rparen_loc: (1,6)-(1,7) = ")" │ ├── equal_loc: (1,8)-(1,9) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (3,0)-(3,25)) ├── name: :m ├── name_loc: (3,9)-(3,10) = "m" ├── receiver: │ @ SelfNode (location: (3,4)-(3,8)) ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (3,15)-(3,25)) │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (3,15)-(3,25)) │ ├── expression: │ │ @ IntegerNode (location: (3,15)-(3,16)) │ │ ├── flags: decimal │ │ └── value: 1 │ ├── keyword_loc: (3,17)-(3,23) = "rescue" │ └── rescue_expression: │ @ IntegerNode (location: (3,24)-(3,25)) │ ├── flags: decimal │ └── value: 2 ├── locals: [] ├── def_keyword_loc: (3,0)-(3,3) = "def" ├── operator_loc: (3,8)-(3,9) = "." ├── lparen_loc: (3,10)-(3,11) = "(" ├── rparen_loc: (3,11)-(3,12) = ")" ├── equal_loc: (3,13)-(3,14) = "=" └── end_keyword_loc: ∅