@ ProgramNode (location: (0...210))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...210))
    └── body: (length: 19)
        ├── @ StringNode (location: (0...6))
        │   ├── opening_loc: (0...1) = "\""
        │   ├── content_loc: (1...5) = "a\\\nb"
        │   ├── closing_loc: (5...6) = "\""
        │   └── unescaped: "ab"
        ├── @ ArrayNode (location: (8...16))
        │   ├── elements: (length: 1)
        │   │   └── @ SymbolNode (location: (11...15))
        │   │       ├── opening_loc: ∅
        │   │       ├── value_loc: (11...15) = "a\\\nb"
        │   │       ├── closing_loc: ∅
        │   │       └── unescaped: "ab"
        │   ├── opening_loc: (8...11) = "%I{"
        │   └── closing_loc: (15...16) = "}"
        ├── @ StringNode (location: (18...26))
        │   ├── opening_loc: (18...21) = "%Q{"
        │   ├── content_loc: (21...25) = "a\\\nb"
        │   ├── closing_loc: (25...26) = "}"
        │   └── unescaped: "ab"
        ├── @ ArrayNode (location: (28...36))
        │   ├── elements: (length: 1)
        │   │   └── @ StringNode (location: (31...35))
        │   │       ├── opening_loc: ∅
        │   │       ├── content_loc: (31...35) = "a\\\nb"
        │   │       ├── closing_loc: ∅
        │   │       └── unescaped: "ab"
        │   ├── opening_loc: (28...31) = "%W{"
        │   └── closing_loc: (35...36) = "}"
        ├── @ ArrayNode (location: (38...46))
        │   ├── elements: (length: 1)
        │   │   └── @ SymbolNode (location: (41...45))
        │   │       ├── opening_loc: ∅
        │   │       ├── value_loc: (41...45) = "a\\\nb"
        │   │       ├── closing_loc: ∅
        │   │       └── unescaped: "a\\\nb"
        │   ├── opening_loc: (38...41) = "%i{"
        │   └── closing_loc: (45...46) = "}"
        ├── @ StringNode (location: (48...56))
        │   ├── opening_loc: (48...51) = "%q{"
        │   ├── content_loc: (51...55) = "a\\\nb"
        │   ├── closing_loc: (55...56) = "}"
        │   └── unescaped: "a\\\nb"
        ├── @ RegularExpressionNode (location: (58...66))
        │   ├── opening_loc: (58...61) = "%r{"
        │   ├── content_loc: (61...65) = "a\\\nb"
        │   ├── closing_loc: (65...66) = "}"
        │   ├── unescaped: "ab"
        │   └── flags: ∅
        ├── @ SymbolNode (location: (68...76))
        │   ├── opening_loc: (68...71) = "%s{"
        │   ├── value_loc: (71...75) = "a\\\nb"
        │   ├── closing_loc: (75...76) = "}"
        │   └── unescaped: "ab"
        ├── @ ArrayNode (location: (78...86))
        │   ├── elements: (length: 1)
        │   │   └── @ StringNode (location: (81...85))
        │   │       ├── opening_loc: ∅
        │   │       ├── content_loc: (81...85) = "a\\\nb"
        │   │       ├── closing_loc: ∅
        │   │       └── unescaped: "a\\\nb"
        │   ├── opening_loc: (78...81) = "%w{"
        │   └── closing_loc: (85...86) = "}"
        ├── @ XStringNode (location: (88...96))
        │   ├── opening_loc: (88...91) = "%x{"
        │   ├── content_loc: (91...95) = "a\\\nb"
        │   ├── closing_loc: (95...96) = "}"
        │   └── unescaped: "ab"
        ├── @ StringNode (location: (98...105))
        │   ├── opening_loc: (98...100) = "%{"
        │   ├── content_loc: (100...104) = "a\\\nb"
        │   ├── closing_loc: (104...105) = "}"
        │   └── unescaped: "ab"
        ├── @ StringNode (location: (107...113))
        │   ├── opening_loc: (107...108) = "'"
        │   ├── content_loc: (108...112) = "a\\\nb"
        │   ├── closing_loc: (112...113) = "'"
        │   └── unescaped: "a\\\nb"
        ├── @ RegularExpressionNode (location: (115...121))
        │   ├── opening_loc: (115...116) = "/"
        │   ├── content_loc: (116...120) = "a\\\nb"
        │   ├── closing_loc: (120...121) = "/"
        │   ├── unescaped: "ab"
        │   └── flags: ∅
        ├── @ SymbolNode (location: (123...130))
        │   ├── opening_loc: (123...125) = ":\""
        │   ├── value_loc: (125...129) = "a\\\nb"
        │   ├── closing_loc: (129...130) = "\""
        │   └── unescaped: "ab"
        ├── @ SymbolNode (location: (132...139))
        │   ├── opening_loc: (132...134) = ":'"
        │   ├── value_loc: (134...138) = "a\\\nb"
        │   ├── closing_loc: (138...139) = "'"
        │   └── unescaped: "ab"
        ├── @ StringNode (location: (141...150))
        │   ├── opening_loc: (141...150) = "<<-\"HERE\""
        │   ├── content_loc: (151...156) = "a\\\nb\n"
        │   ├── closing_loc: (156...161) = "HERE\n"
        │   └── unescaped: "ab\n"
        ├── @ StringNode (location: (162...171))
        │   ├── opening_loc: (162...171) = "<<-'HERE'"
        │   ├── content_loc: (172...177) = "a\\\nb\n"
        │   ├── closing_loc: (177...182) = "HERE\n"
        │   └── unescaped: "a\\\nb\n"
        ├── @ XStringNode (location: (183...192))
        │   ├── opening_loc: (183...192) = "<<-`HERE`"
        │   ├── content_loc: (193...198) = "a\\\nb\n"
        │   ├── closing_loc: (198...203) = "HERE\n"
        │   └── unescaped: "ab\n"
        └── @ XStringNode (location: (204...210))
            ├── opening_loc: (204...205) = "`"
            ├── content_loc: (205...209) = "a\\\nb"
            ├── closing_loc: (209...210) = "`"
            └── unescaped: "ab"
