ProgramNode(0...314)( [], StatementsNode(0...314)( [WhileNode(0...18)( (0...5), (15...18), TrueNode(6...10)(), StatementsNode(12...13)([IntegerNode(12...13)()]), 0 ), WhileNode(20...32)( (22...27), nil, TrueNode(28...32)(), StatementsNode(20...21)([IntegerNode(20...21)()]), 0 ), WhileNode(34...50)( (40...45), nil, TrueNode(46...50)(), StatementsNode(34...39)([BreakNode(34...39)(nil, (34...39))]), 0 ), WhileNode(52...67)( (57...62), nil, TrueNode(63...67)(), StatementsNode(52...56)([NextNode(52...56)(nil, (52...56))]), 0 ), WhileNode(69...86)( (76...81), nil, TrueNode(82...86)(), StatementsNode(69...75)([ReturnNode(69...75)((69...75), nil)]), 0 ), WhileNode(88...109)( (99...104), nil, CallNode(105...109)( nil, nil, (105...109), nil, nil, nil, nil, 0, "bar?" ), StatementsNode(88...98)( [CallNode(88...98)( nil, nil, (88...91), nil, ArgumentsNode(92...98)( [SymbolNode(92...94)((92...93), (93...94), nil, "a"), SymbolNode(96...98)((96...97), (97...98), nil, "b")] ), nil, nil, 0, "foo" )] ), 0 ), WhileNode(111...161)( (111...116), (158...161), DefNode(117...149)( (126...129), SelfNode(121...125)(), ParametersNode(130...144)( [], [OptionalParameterNode(130...144)( :a, (130...131), (132...133), CallNode(134...144)( nil, nil, (134...137), nil, nil, nil, BlockNode(138...144)([], nil, nil, (138...140), (141...144)), 0, "tap" ) )], [], nil, [], nil, nil ), nil, [:a], (117...120), (125...126), nil, nil, nil, (146...149) ), StatementsNode(151...156)([BreakNode(151...156)(nil, (151...156))]), 0 ), WhileNode(163...210)( (163...168), (207...210), ClassNode(169...198)( [:a], (169...174), ConstantReadNode(175...178)(), nil, nil, StatementsNode(179...193)( [LocalVariableWriteNode(179...193)( :a, 0, CallNode(183...193)( nil, nil, (183...186), nil, nil, nil, BlockNode(187...193)([], nil, nil, (187...189), (190...193)), 0, "tap" ), (179...180), (181...182) )] ), (195...198), "Foo" ), StatementsNode(200...205)([BreakNode(200...205)(nil, (200...205))]), 0 ), WhileNode(212...260)( (212...217), (257...260), SingletonClassNode(218...248)( [], (218...223), (224...226), SelfNode(227...231)(), StatementsNode(233...243)( [CallNode(233...243)( nil, nil, (233...236), nil, nil, nil, BlockNode(237...243)([], nil, nil, (237...239), (240...243)), 0, "tap" )] ), (245...248) ), StatementsNode(250...255)([BreakNode(250...255)(nil, (250...255))]), 0 ), WhileNode(262...314)( (262...267), (311...314), SingletonClassNode(268...302)( [:a], (268...273), (274...276), SelfNode(277...281)(), StatementsNode(283...297)( [LocalVariableWriteNode(283...297)( :a, 0, CallNode(287...297)( nil, nil, (287...290), nil, nil, nil, BlockNode(291...297)([], nil, nil, (291...293), (294...297)), 0, "tap" ), (283...284), (285...286) )] ), (299...302) ), StatementsNode(304...309)([BreakNode(304...309)(nil, (304...309))]), 0 )] ) )