@ ProgramNode (location: (1,0)-(1,24)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,24)) └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,24)) ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (1,1)-(1,23)) │ ├── key: │ │ @ SymbolNode (location: (1,1)-(1,3)) │ │ ├── flags: forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,1)-(1,2) = "a" │ │ ├── closing_loc: (1,2)-(1,3) = ":" │ │ └── unescaped: "a" │ ├── value: │ │ @ IfNode (location: (1,4)-(1,23)) │ │ ├── if_keyword_loc: (1,4)-(1,6) = "if" │ │ ├── predicate: │ │ │ @ TrueNode (location: (1,7)-(1,11)) │ │ ├── then_keyword_loc: (1,12)-(1,16) = "then" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,17)-(1,19)) │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (1,17)-(1,19)) │ │ │ ├── flags: decimal │ │ │ └── value: 42 │ │ ├── consequent: ∅ │ │ └── end_keyword_loc: (1,20)-(1,23) = "end" │ └── operator_loc: ∅ └── closing_loc: (1,23)-(1,24) = "}"