@ ProgramNode (location: (0...131))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...131))
    └── body: (length: 14)
        ├── @ RationalNode (location: (0...4))
        │   └── numeric:
        │       @ FloatNode (location: (0...3))
        ├── @ RationalNode (location: (5...8))
        │   └── numeric:
        │       @ IntegerNode (location: (5...7))
        │       └── flags: decimal
        ├── @ IntegerNode (location: (9...12))
        │   └── flags: hexadecimal
        ├── @ IntegerNode (location: (13...18))
        │   └── flags: decimal
        ├── @ FloatNode (location: (19...23))
        ├── @ FloatNode (location: (24...38))
        ├── @ FloatNode (location: (39...54))
        ├── @ StringNode (location: (55...57))
        │   ├── opening_loc: (55...56) = "?"
        │   ├── content_loc: (56...57) = "c"
        │   ├── closing_loc: ∅
        │   └── unescaped: "c"
        ├── @ RegularExpressionNode (location: (58...63))
        │   ├── opening_loc: (58...61) = "%r("
        │   ├── content_loc: (61...62) = "/"
        │   ├── closing_loc: (62...63) = ")"
        │   ├── unescaped: "/"
        │   └── flags: ∅
        ├── @ RegularExpressionNode (location: (64...70))
        │   ├── opening_loc: (64...67) = "%r("
        │   ├── content_loc: (67...69) = "\\)"
        │   ├── closing_loc: (69...70) = ")"
        │   ├── unescaped: ")"
        │   └── flags: ∅
        ├── @ InterpolatedRegularExpressionNode (location: (71...85))
        │   ├── opening_loc: (71...74) = "%r("
        │   ├── parts: (length: 2)
        │   │   ├── @ EmbeddedStatementsNode (location: (74...81))
        │   │   │   ├── opening_loc: (74...76) = "\#{"
        │   │   │   ├── statements:
        │   │   │   │   @ StatementsNode (location: (76...80))
        │   │   │   │   └── body: (length: 1)
        │   │   │   │       └── @ InstanceVariableReadNode (location: (76...80))
        │   │   │   │           └── name: :@bar
        │   │   │   └── closing_loc: (80...81) = "}"
        │   │   └── @ StringNode (location: (81...84))
        │   │       ├── opening_loc: ∅
        │   │       ├── content_loc: (81...84) = "baz"
        │   │       ├── closing_loc: ∅
        │   │       └── unescaped: "baz"
        │   ├── closing_loc: (84...85) = ")"
        │   └── flags: ∅
        ├── @ FloatNode (location: (86...102))
        ├── @ FloatNode (location: (103...120))
        └── @ CallNode (location: (121...131))
            ├── receiver: ∅
            ├── call_operator_loc: ∅
            ├── message_loc: (121...122) = "w"
            ├── opening_loc: (122...123) = "("
            ├── arguments:
            │   @ ArgumentsNode (location: (123...130))
            │   └── arguments: (length: 1)
            │       └── @ CallNode (location: (123...130))
            │           ├── receiver: ∅
            │           ├── call_operator_loc: ∅
            │           ├── message_loc: (123...126) = "foo"
            │           ├── opening_loc: ∅
            │           ├── arguments:
            │           │   @ ArgumentsNode (location: (127...130))
            │           │   └── arguments: (length: 1)
            │           │       └── @ CallNode (location: (127...130))
            │           │           ├── receiver: ∅
            │           │           ├── call_operator_loc: ∅
            │           │           ├── message_loc: (127...130) = "bar"
            │           │           ├── opening_loc: ∅
            │           │           ├── arguments: ∅
            │           │           ├── closing_loc: ∅
            │           │           ├── block: ∅
            │           │           ├── flags: variable_call
            │           │           └── name: "bar"
            │           ├── closing_loc: ∅
            │           ├── block: ∅
            │           ├── flags: ∅
            │           └── name: "foo"
            ├── closing_loc: (130...131) = ")"
            ├── block: ∅
            ├── flags: ∅
            └── name: "w"
