package Ġprime . combinator . pas ers . implement ations Ċ Ċ import Ġprime . combinator . pas ers . Parsed Ċ import Ġprime . combinator . pas ers . Parsed Result Ċ import Ġkotlin . Long Ċ Ċ /** Ċ Ġ* ĠSp aces Ġallows Ġparsing Ġseveral Ġspace Ġat Ġone Ġtime Ċ Ġ* ĠExample : Ċ Ġ* Ġ Ġaim : Ġwe Ġwant Ġto Ġparse Ġstring Ġspaces Ġin Ġthe Ġbeginning Ġof Ġst ing Ġ" ĠĠ ĠName Ġis Ġ..." Ċ Ġ* Ġ Ġhow Ġto Ġreach : Ġ ĠSp aces (). parse (" ĠĠ ĠName Ġis Ġ... "). get () Ċ Ġ* Ċ Ġ* Ġ Ġresult : Ġspaces Ġpres iding Ġ" Name " Ġare Ġparsed . Ċ Ġ* Ċ Ġ* Ġ@ License : ĠApache - 2 . 0 Ċ Ġ* Ġ@ source : Ġhttps :// github . com / f ant ae v roman / prime Combin ator Ċ Ġ* Ġ@ author : ĠRoman ĠF ant ae v Ċ Ġ* Ġ@ contact : ĠF ant ae v R oman @ gmail . com Ċ Ġ* Ġ@ since Ġ 2 0 2 1 Ċ Ġ*/ Ċ class ĠSp aces Ġ: ĠEnd Of Input Parser < Spaces . Spaces Parsed >() Ġ{ ĊĠĠĠ Ġinner Ġclass ĠSp aces Parsed ( val Ġspaces : ĠString , Ġmap From : ĠParsed ) Ġ: ĠParsed ( map From ) ĊĊĠĠĠ Ġoverride Ġfun Ġparse Next ( previous : ĠParsed ): ĠParsed Result < Spaces Parsed > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRepeat ( Character (' Ġ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join Repeat ers Ġ{ Ġit . map Ġ{ Ġit . char Ġ}. join ToString ( separator Ġ= Ġ"") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp aces Parsed ( it . joined , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. parse ( previous ) ĊĠĠĠ Ġ} Ċ } ĊĊĊ