ProgramNode(0...117)(
  [],
  StatementsNode(0...117)(
    [IfNode(0...9)(
       nil,
       CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"),
       StatementsNode(4...5)(
         [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b")]
       ),
       ElseNode(6...9)(
         (6...7),
         StatementsNode(8...9)(
           [CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "c")]
         ),
         nil
       ),
       nil
     ),
     IfNode(11...38)(
       nil,
       CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "a"),
       StatementsNode(15...25)(
         [DefinedNode(15...25)(
            nil,
            CallNode(24...25)(nil, nil, (24...25), nil, nil, nil, nil, 0, "b"),
            nil,
            (15...23)
          )]
       ),
       ElseNode(26...38)(
         (26...27),
         StatementsNode(28...38)(
           [DefinedNode(28...38)(
              nil,
              CallNode(37...38)(
                nil,
                nil,
                (37...38),
                nil,
                nil,
                nil,
                nil,
                0,
                "c"
              ),
              nil,
              (28...36)
            )]
         ),
         nil
       ),
       nil
     ),
     IfNode(40...55)(
       nil,
       CallNode(40...46)(nil, nil, (40...46), nil, nil, nil, nil, 0, "empty?"),
       StatementsNode(47...51)([TrueNode(47...51)()]),
       ElseNode(51...55)(
         (51...52),
         StatementsNode(52...55)([NilNode(52...55)()]),
         nil
       ),
       nil
     ),
     IfNode(57...73)(
       nil,
       CallNode(57...63)(nil, nil, (57...63), nil, nil, nil, nil, 0, "empty?"),
       StatementsNode(64...69)([FalseNode(64...69)()]),
       ElseNode(69...73)(
         (69...70),
         StatementsNode(70...73)([NilNode(70...73)()]),
         nil
       ),
       nil
     ),
     IfNode(75...89)(
       nil,
       CallNode(75...81)(nil, nil, (75...81), nil, nil, nil, nil, 0, "empty?"),
       StatementsNode(82...85)([NilNode(82...85)()]),
       ElseNode(85...89)(
         (85...86),
         StatementsNode(86...89)([NilNode(86...89)()]),
         nil
       ),
       nil
     ),
     IfNode(91...101)(
       nil,
       CallNode(91...93)(nil, nil, (91...93), nil, nil, nil, nil, 0, "a?"),
       StatementsNode(94...97)([NilNode(94...97)()]),
       ElseNode(97...101)(
         (97...98),
         StatementsNode(98...101)([NilNode(98...101)()]),
         nil
       ),
       nil
     ),
     IfNode(103...117)(
       nil,
       CallNode(103...104)(nil, nil, (103...104), nil, nil, nil, nil, 0, "a"),
       StatementsNode(106...110)(
         [CallNode(106...110)(
            nil,
            nil,
            (106...110),
            nil,
            nil,
            nil,
            nil,
            0,
            "var1"
          )]
       ),
       ElseNode(111...117)(
         (111...112),
         StatementsNode(113...117)(
           [CallNode(113...117)(
              nil,
              nil,
              (113...117),
              nil,
              nil,
              nil,
              nil,
              0,
              "var2"
            )]
         ),
         nil
       ),
       nil
     )]
  )
)
