package Ġeu . ye ger . cy k . parser Ċ Ċ import Ġeu . ye ger . cy k . Result Ċ import Ġeu . ye ger . cy k . map Ċ import Ġeu . ye ger . cy k . map As Result Ċ import Ġeu . ye ger . cy k . model . Terminal Symbol Ċ import Ġeu . ye ger . cy k . model . Word Ċ Ċ public Ġfun Ġword ( word String : ĠString ): ĠResult < Word > Ġ{ ĊĠĠĠ Ġreturn Ġword String ĊĠĠĠĠĠĠĠ Ġ. split (" Ġ") ĊĠĠĠĠĠĠĠ Ġ. filter ( String :: isNotBlank ) ĊĠĠĠĠĠĠĠ Ġ. parse Terminal Symbols () ĊĠĠĠĠĠĠĠ Ġ. map (:: Word ) Ċ } Ċ Ċ internal Ġfun ĠList < String >. parse Terminal Symbols (): ĠResult < List < Terminal Symbol >> Ġ{ ĊĠĠĠ Ġreturn Ġmap As Result ( String :: parse Terminal Symbol ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġterminal Symbols Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġterminal Symbols . if Empty Ġ{ ĠlistOf ( Terminal Symbol ("")) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ