stmts.kt: # 0| [CompilationUnit] stmts # 0| 1: [Class] StmtsKt # 2| 1: [Method] topLevelMethod # 2| 3: [TypeAccess] int #-----| 4: (Parameters) # 2| 0: [Parameter] x # 2| 0: [TypeAccess] int # 2| 1: [Parameter] y # 2| 0: [TypeAccess] int # 2| 5: [BlockStmt] { ... } # 3| 0: [ExprStmt] ; # 3| 0: [WhenExpr] when ... # 3| 0: [WhenBranch] ... -> ... # 3| 0: [GTExpr] ... > ... # 3| 0: [VarAccess] x # 3| 1: [VarAccess] y # 3| 1: [BlockStmt] { ... } # 4| 1: [WhenBranch] ... -> ... # 4| 0: [LTExpr] ... < ... # 4| 0: [VarAccess] x # 4| 1: [VarAccess] y # 4| 1: [BlockStmt] { ... } # 5| 2: [WhenBranch] ... -> ... # 5| 0: [BooleanLiteral] true # 5| 1: [BlockStmt] { ... } # 7| 1: [WhileStmt] while (...) # 7| 0: [GTExpr] ... > ... # 7| 0: [VarAccess] x # 7| 1: [VarAccess] y # 8| 1: [ReturnStmt] return ... # 8| 0: [VarAccess] x # 9| 2: [WhileStmt] while (...) # 9| 0: [LTExpr] ... < ... # 9| 0: [VarAccess] x # 9| 1: [VarAccess] y # 9| 1: [BlockStmt] { ... } # 10| 0: [ReturnStmt] return ... # 10| 0: [VarAccess] y # 12| 3: [BlockStmt] { ... } # 12| 0: [DoStmt] do ... while (...) # 14| 0: [LTExpr] ... < ... # 14| 0: [VarAccess] x # 14| 1: [VarAccess] y # 12| 1: [BlockStmt] { ... } # 13| 0: [ReturnStmt] return ... # 13| 0: [VarAccess] y # 15| 4: [LocalVariableDeclStmt] var ...; # 15| 1: [LocalVariableDeclExpr] z # 15| 0: [IntegerLiteral] 3 # 17| 5: [LocalVariableDeclStmt] var ...; # 17| 1: [LocalVariableDeclExpr] q2 # 17| 0: [WhenExpr] when ... # 17| 0: [WhenBranch] ... -> ... # 17| 0: [BooleanLiteral] true # 17| 1: [BlockStmt] { ... } # 17| 0: [ExprStmt] ; # 17| 0: [AssignExpr] ...=... # 17| 0: [VarAccess] z # 17| 1: [IntegerLiteral] 4 # 17| 1: [WhenBranch] ... -> ... # 17| 0: [BooleanLiteral] true # 17| 1: [BlockStmt] { ... } # 17| 0: [ExprStmt] ; # 17| 0: [AssignExpr] ...=... # 17| 0: [VarAccess] z # 17| 1: [IntegerLiteral] 5 # 18| 6: [LocalVariableDeclStmt] var ...; # 18| 1: [LocalVariableDeclExpr] q3 # 18| 0: [WhenExpr] when ... # 18| 0: [WhenBranch] ... -> ... # 18| 0: [BooleanLiteral] true # 18| 1: [ExprStmt] ; # 18| 0: [AssignExpr] ...=... # 18| 0: [VarAccess] z # 18| 1: [IntegerLiteral] 4 # 18| 1: [WhenBranch] ... -> ... # 18| 0: [BooleanLiteral] true # 18| 1: [ExprStmt] ; # 18| 0: [AssignExpr] ...=... # 18| 0: [VarAccess] z # 18| 1: [IntegerLiteral] 5 # 19| 7: [ReturnStmt] return ... # 19| 0: [AddExpr] ... + ... # 19| 0: [VarAccess] x # 19| 1: [VarAccess] y # 22| 2: [Method] loops # 22| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 22| 0: [Parameter] x # 22| 0: [TypeAccess] int # 22| 1: [Parameter] y # 22| 0: [TypeAccess] int # 22| 5: [BlockStmt] { ... } # 23| 0: [LabeledStmt]