@ ProgramNode (location: (1,0)-(4,5)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,5)) └── body: (length: 4) ├── @ ParenthesesNode (location: (1,0)-(1,5)) │ ├── body: │ │ @ StatementsNode (location: (1,1)-(1,4)) │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (1,1)-(1,4)) │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ IntegerNode (location: (1,1)-(1,2)) │ │ │ ├── flags: decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (1,2)-(1,4) = ".." │ ├── opening_loc: (1,0)-(1,1) = "(" │ └── closing_loc: (1,4)-(1,5) = ")" ├── @ RangeNode (location: (2,0)-(2,4)) │ ├── flags: ∅ │ ├── left: │ │ @ IntegerNode (location: (2,0)-(2,1)) │ │ ├── flags: decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (2,3)-(2,4)) │ │ ├── flags: decimal │ │ └── value: 2 │ └── operator_loc: (2,1)-(2,3) = ".." ├── @ ParenthesesNode (location: (3,0)-(3,6)) │ ├── body: │ │ @ StatementsNode (location: (3,1)-(3,5)) │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (3,1)-(3,5)) │ │ ├── flags: exclude_end │ │ ├── left: │ │ │ @ IntegerNode (location: (3,1)-(3,2)) │ │ │ ├── flags: decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (3,2)-(3,5) = "..." │ ├── opening_loc: (3,0)-(3,1) = "(" │ └── closing_loc: (3,5)-(3,6) = ")" └── @ RangeNode (location: (4,0)-(4,5)) ├── flags: exclude_end ├── left: │ @ IntegerNode (location: (4,0)-(4,1)) │ ├── flags: decimal │ └── value: 1 ├── right: │ @ IntegerNode (location: (4,4)-(4,5)) │ ├── flags: decimal │ └── value: 2 └── operator_loc: (4,1)-(4,4) = "..."