@ ProgramNode (location: (0...42))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...42))
    └── body: (length: 1)
        └── @ CallNode (location: (0...42))
            ├── receiver:
            │   @ ArrayNode (location: (0...12))
            │   ├── elements: (length: 4)
            │   │   ├── @ IntegerNode (location: (1...2))
            │   │   │   └── flags: decimal
            │   │   ├── @ IntegerNode (location: (4...5))
            │   │   │   └── flags: decimal
            │   │   ├── @ IntegerNode (location: (7...8))
            │   │   │   └── flags: decimal
            │   │   └── @ IntegerNode (location: (10...11))
            │   │       └── flags: decimal
            │   ├── opening_loc: (0...1) = "["
            │   └── closing_loc: (11...12) = "]"
            ├── call_operator_loc: ∅
            ├── message_loc: (12...24) = "[from .. to]"
            ├── opening_loc: (12...13) = "["
            ├── arguments:
            │   @ ArgumentsNode (location: (13...42))
            │   └── arguments: (length: 2)
            │       ├── @ RangeNode (location: (13...23))
            │       │   ├── left:
            │       │   │   @ CallNode (location: (13...17))
            │       │   │   ├── receiver: ∅
            │       │   │   ├── call_operator_loc: ∅
            │       │   │   ├── message_loc: (13...17) = "from"
            │       │   │   ├── opening_loc: ∅
            │       │   │   ├── arguments: ∅
            │       │   │   ├── closing_loc: ∅
            │       │   │   ├── block: ∅
            │       │   │   ├── flags: variable_call
            │       │   │   └── name: "from"
            │       │   ├── right:
            │       │   │   @ CallNode (location: (21...23))
            │       │   │   ├── receiver: ∅
            │       │   │   ├── call_operator_loc: ∅
            │       │   │   ├── message_loc: (21...23) = "to"
            │       │   │   ├── opening_loc: ∅
            │       │   │   ├── arguments: ∅
            │       │   │   ├── closing_loc: ∅
            │       │   │   ├── block: ∅
            │       │   │   ├── flags: variable_call
            │       │   │   └── name: "to"
            │       │   ├── operator_loc: (18...20) = ".."
            │       │   └── flags: ∅
            │       └── @ ArrayNode (location: (27...42))
            │           ├── elements: (length: 3)
            │           │   ├── @ StringNode (location: (28...31))
            │           │   │   ├── opening_loc: (28...29) = "\""
            │           │   │   ├── content_loc: (29...30) = "a"
            │           │   │   ├── closing_loc: (30...31) = "\""
            │           │   │   └── unescaped: "a"
            │           │   ├── @ StringNode (location: (33...36))
            │           │   │   ├── opening_loc: (33...34) = "\""
            │           │   │   ├── content_loc: (34...35) = "b"
            │           │   │   ├── closing_loc: (35...36) = "\""
            │           │   │   └── unescaped: "b"
            │           │   └── @ StringNode (location: (38...41))
            │           │       ├── opening_loc: (38...39) = "\""
            │           │       ├── content_loc: (39...40) = "c"
            │           │       ├── closing_loc: (40...41) = "\""
            │           │       └── unescaped: "c"
            │           ├── opening_loc: (27...28) = "["
            │           └── closing_loc: (41...42) = "]"
            ├── closing_loc: (23...24) = "]"
            ├── block: ∅
            ├── flags: ∅
            └── name: "[]="
