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