@ ProgramNode (location: (0...12))
├── locals: [:str]
└── statements:
    @ StatementsNode (location: (0...12))
    └── body: (length: 1)
        └── @ LocalVariableWriteNode (location: (0...12))
            ├── name: :str
            ├── depth: 0
            ├── name_loc: (0...3) = "str"
            ├── value:
            │   @ StringNode (location: (6...12))
            │   ├── opening_loc: (6...12) = "<<-XXX"
            │   ├── content_loc: (14...30) = "before\\\r\nafter\r\n"
            │   ├── closing_loc: (30...35) = "XXX\r\n"
            │   └── unescaped: "beforeafter\r\n"
            └── operator_loc: (4...5) = "="
