@ ProgramNode (location: (0...33))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...33))
    └── body: (length: 2)
        ├── @ StringNode (location: (0...4))
        │   ├── opening_loc: (0...4) = "<<-E"
        │   ├── content_loc: (5...25) = "    1 \\\n    2\n    3\n"
        │   ├── closing_loc: (25...27) = "E\n"
        │   └── unescaped: "    1     2\n    3\n"
        └── @ StringNode (location: (29...33))
            ├── opening_loc: (29...33) = "<<~E"
            ├── content_loc: (34...54) = "    1 \\\n    2\n    3\n"
            ├── closing_loc: (54...56) = "E\n"
            └── unescaped: "1 2\n3\n"
