@ ProgramNode (location: (1,0)-(7,1)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,1)) └── body: (length: 2) ├── @ ArrayNode (location: (1,0)-(2,3)) │ ├── flags: ∅ │ ├── elements: (length: 1) │ │ └── @ StringNode (location: (1,1)-(2,1)) │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,1)-(1,2) = "\"" │ │ ├── content_loc: (1,2)-(2,0) = " some text\n" │ │ ├── closing_loc: (2,0)-(2,1) = "\"" │ │ └── unescaped: " some text\n" │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (2,2)-(2,3) = "]" └── @ ArrayNode (location: (4,0)-(7,1)) ├── flags: ∅ ├── elements: (length: 1) │ └── @ StringNode (location: (4,1)-(4,8)) │ ├── flags: ∅ │ ├── opening_loc: (4,1)-(4,8) = "<<-FILE" │ ├── content_loc: (5,0)-(6,0) = " some text\n" │ ├── closing_loc: (6,0)-(7,0) = "FILE\n" │ └── unescaped: " some text\n" ├── opening_loc: (4,0)-(4,1) = "[" └── closing_loc: (7,0)-(7,1) = "]"