@ ProgramNode (location: (0...144))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...144))
    └── body: (length: 11)
        ├── @ NextNode (location: (0...4))
        │   ├── arguments: ∅
        │   └── keyword_loc: (0...4) = "next"
        ├── @ ReturnNode (location: (5...11))
        │   ├── keyword_loc: (5...11) = "return"
        │   └── arguments: ∅
        ├── @ BreakNode (location: (12...17))
        │   ├── arguments: ∅
        │   └── keyword_loc: (12...17) = "break"
        ├── @ RetryNode (location: (18...23))
        ├── @ RedoNode (location: (24...28))
        ├── @ ReturnNode (location: (29...37))
        │   ├── keyword_loc: (29...35) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (36...37))
        │       └── arguments: (length: 1)
        │           └── @ IntegerNode (location: (36...37))
        │               └── flags: decimal
        ├── @ ReturnNode (location: (38...49))
        │   ├── keyword_loc: (38...44) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (45...49))
        │       └── arguments: (length: 2)
        │           ├── @ IntegerNode (location: (45...46))
        │           │   └── flags: decimal
        │           └── @ IntegerNode (location: (48...49))
        │               └── flags: decimal
        ├── @ ReturnNode (location: (50...69))
        │   ├── keyword_loc: (50...56) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (57...69))
        │       └── arguments: (length: 1)
        │           └── @ IfNode (location: (57...69))
        │               ├── if_keyword_loc: ∅
        │               ├── predicate:
        │               │   @ TrueNode (location: (57...61))
        │               ├── statements:
        │               │   @ StatementsNode (location: (64...65))
        │               │   └── body: (length: 1)
        │               │       └── @ IntegerNode (location: (64...65))
        │               │           └── flags: decimal
        │               ├── consequent:
        │               │   @ ElseNode (location: (66...69))
        │               │   ├── else_keyword_loc: (66...67) = ":"
        │               │   ├── statements:
        │               │   │   @ StatementsNode (location: (68...69))
        │               │   │   └── body: (length: 1)
        │               │   │       └── @ IntegerNode (location: (68...69))
        │               │   │           └── flags: decimal
        │               │   └── end_keyword_loc: ∅
        │               └── end_keyword_loc: ∅
        ├── @ BreakNode (location: (70...88))
        │   ├── arguments:
        │   │   @ ArgumentsNode (location: (76...88))
        │   │   └── arguments: (length: 1)
        │   │       └── @ IfNode (location: (76...88))
        │   │           ├── if_keyword_loc: ∅
        │   │           ├── predicate:
        │   │           │   @ TrueNode (location: (76...80))
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (83...84))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ IntegerNode (location: (83...84))
        │   │           │           └── flags: decimal
        │   │           ├── consequent:
        │   │           │   @ ElseNode (location: (85...88))
        │   │           │   ├── else_keyword_loc: (85...86) = ":"
        │   │           │   ├── statements:
        │   │           │   │   @ StatementsNode (location: (87...88))
        │   │           │   │   └── body: (length: 1)
        │   │           │   │       └── @ IntegerNode (location: (87...88))
        │   │           │   │           └── flags: decimal
        │   │           │   └── end_keyword_loc: ∅
        │   │           └── end_keyword_loc: ∅
        │   └── keyword_loc: (70...75) = "break"
        ├── @ NextNode (location: (89...106))
        │   ├── arguments:
        │   │   @ ArgumentsNode (location: (94...106))
        │   │   └── arguments: (length: 1)
        │   │       └── @ IfNode (location: (94...106))
        │   │           ├── if_keyword_loc: ∅
        │   │           ├── predicate:
        │   │           │   @ TrueNode (location: (94...98))
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (101...102))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ IntegerNode (location: (101...102))
        │   │           │           └── flags: decimal
        │   │           ├── consequent:
        │   │           │   @ ElseNode (location: (103...106))
        │   │           │   ├── else_keyword_loc: (103...104) = ":"
        │   │           │   ├── statements:
        │   │           │   │   @ StatementsNode (location: (105...106))
        │   │           │   │   └── body: (length: 1)
        │   │           │   │       └── @ IntegerNode (location: (105...106))
        │   │           │   │           └── flags: decimal
        │   │           │   └── end_keyword_loc: ∅
        │   │           └── end_keyword_loc: ∅
        │   └── keyword_loc: (89...93) = "next"
        └── @ ReturnNode (location: (107...144))
            ├── keyword_loc: (107...113) = "return"
            └── arguments:
                @ ArgumentsNode (location: (114...144))
                └── arguments: (length: 2)
                    ├── @ TrueNode (location: (114...118))
                    └── @ IfNode (location: (120...144))
                        ├── if_keyword_loc: (120...122) = "if"
                        ├── predicate:
                        │   @ TrueNode (location: (123...127))
                        ├── statements:
                        │   @ StatementsNode (location: (130...131))
                        │   └── body: (length: 1)
                        │       └── @ IntegerNode (location: (130...131))
                        │           └── flags: decimal
                        ├── consequent:
                        │   @ ElseNode (location: (132...144))
                        │   ├── else_keyword_loc: (132...136) = "else"
                        │   ├── statements:
                        │   │   @ StatementsNode (location: (139...140))
                        │   │   └── body: (length: 1)
                        │   │       └── @ IntegerNode (location: (139...140))
                        │   │           └── flags: decimal
                        │   └── end_keyword_loc: (141...144) = "end"
                        └── end_keyword_loc: (141...144) = "end"
