@ ProgramNode (location: (0...21))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...21))
    └── body: (length: 2)
        ├── @ CallNode (location: (0...6))
        │   ├── receiver:
        │   │   @ MatchLastLineNode (location: (1...6))
        │   │   ├── opening_loc: (1...2) = "/"
        │   │   ├── content_loc: (2...5) = "wat"
        │   │   ├── closing_loc: (5...6) = "/"
        │   │   ├── unescaped: "wat"
        │   │   └── flags: ∅
        │   ├── call_operator_loc: ∅
        │   ├── message_loc: (0...1) = "!"
        │   ├── opening_loc: ∅
        │   ├── arguments: ∅
        │   ├── closing_loc: ∅
        │   ├── block: ∅
        │   ├── flags: ∅
        │   └── name: "!"
        └── @ IfNode (location: (8...21))
            ├── if_keyword_loc: (8...10) = "if"
            ├── predicate:
            │   @ MatchLastLineNode (location: (11...16))
            │   ├── opening_loc: (11...12) = "/"
            │   ├── content_loc: (12...15) = "wat"
            │   ├── closing_loc: (15...16) = "/"
            │   ├── unescaped: "wat"
            │   └── flags: ∅
            ├── statements: ∅
            ├── consequent: ∅
            └── end_keyword_loc: (18...21) = "end"
