@ ProgramNode (location: (1,0)-(4,3)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) ├── predicate: │ @ IntegerNode (location: (1,5)-(1,6)) │ ├── flags: decimal │ └── value: 0 ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,6)) │ ├── pattern: │ │ @ RangeNode (location: (2,3)-(2,8)) │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ IntegerNode (location: (2,3)-(2,5)) │ │ │ ├── flags: decimal │ │ │ └── value: -1 │ │ ├── right: │ │ │ @ IntegerNode (location: (2,7)-(2,8)) │ │ │ ├── flags: decimal │ │ │ └── value: 1 │ │ └── operator_loc: (2,5)-(2,7) = ".." │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,6)) │ │ └── body: (length: 1) │ │ └── @ TrueNode (location: (3,2)-(3,6)) │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: ∅ ├── consequent: ∅ ├── case_keyword_loc: (1,0)-(1,4) = "case" └── end_keyword_loc: (4,0)-(4,3) = "end"