package Ġcom . red ston er . plots . util Ċ Ċ open Ġclass ĠLoop Exception ( val Ġis Break : ĠBoolean ) Ġ: ĠException ( null , Ġnull , Ġfalse , Ġfalse ) Ċ Ċ class ĠLoop Scope Ġ{ ĊĠĠĠ Ġvar Ġexc : ĠException ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġdo Break (): ĠNothing Ġ{ ĊĠĠĠĠĠĠĠ Ġexc Ġ= ĠLoop Exception ( true ) ĊĠĠĠĠĠĠĠ Ġthrow Ġexc !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdo Continue (): ĠNothing Ġ{ ĊĠĠĠĠĠĠĠ Ġexc Ġ= ĠLoop Exception ( false ) ĊĠĠĠĠĠĠĠ Ġthrow Ġexc !! ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ inline Ġfun Ġloop ( block : ĠLoop Scope . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġscope Ġ= ĠLoop Scope () ĊĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock ( scope ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠLoop Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ex Ġ=== Ġscope . exc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ex . is Break ) Ġbreak Ġelse Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }