package Ġio . ipfs . kotlin . parser Ċ Ċ import Ġio . ipfs . kotlin .* Ċ import Ġjava . io . File Ċ import Ġjava . util . Stack Ċ Ċ /** Ċ Ġ* ĠAuthor Ġ: ĠEm ile ĠA ch ad de Ġ 1 1 Ġm ars Ġ 2 0 2 0 Ġat Ġ 1 7 : 5 0 : 3 7 + 0 1 : 0 0 Ċ Ġ* ĠImprove Ġ: Ġto Ġbe Ġdone Ġas Ġothers Ċ Ġ* ĠRevision Ġ: ĠEm ile ĠA ch ad de Ġ 1 5 Ġm ars Ġ 2 0 2 0 Ġat Ġ 1 7 : 5 4 : 2 4 + 0 1 : 0 0 Ċ Ġ*/ Ċ Ċ object Ġle xe me List Register Ġ{ ĊĠĠĠĠ Ġvar Ġlist Ġ= Ġmutable ListOf < L exe me >() ĊĊĠĠĠĠ Ġfun ĠisEmpty Ġ() Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠ ĉ Ġreturn Ġlist . isEmpty () ĊĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĊĠĠĠĠ Ġfun Ġstore Ġ( lex _ l : List < L exe me >) Ġ{ ĊĠĠĠĠĠ ĉ Ġlex _ l . forEach Ġ{ lex Ġ-> Ġlist . add ( lex )} ĊĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĊĠĠĠĠ Ġfun Ġretrieve Ġ() Ġ: ĠList < L exe me > Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġ( here , Ġcaller ) Ġ= Ġmodule Here And Caller () ĊĠĠĠĠĉ Ġentering ( here , Ġcaller ) ĊĊĉ Ġvar Ġlex _ l Ġ= Ġmutable ListOf < L exe me >() ĊĠĠĠĠĠ ĉ Ġlist . forEach Ġ{ lex Ġ-> Ġlex _ l . add ( lex )} ĊĊĉ Ġexiting ( here ) Ċĉ Ġreturn Ġlex _ l ĊĠĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġbuild And Store L exe me List (): ĠList < L exe me > Ġ{ ĊĠĠĠ Ġval Ġ( here , Ġcaller ) Ġ= Ġmodule Here And Caller () ĊĠĠĠ Ġentering ( here , Ġcaller ) ĊĊĠĠĠ Ġval Ġy ml FileName Ġ= Ġprovide Any FileName Of What Ġ(" Y ml ") ĊĠĠĠ Ġvar Ġresult Ġ= Ġle xe me ListOf FileName ( yml FileName ) ĊĠĠĠ Ġle xe me List Register . store Ġ( result ) ĊĊĠĠĠ Ġif Ġ( is Trace ( here )) Ġprintln ("$ here : Ġoutput Ġle xe me ĠList Ġ'$ result '") ĊĠĠĠ Ġexiting ( here ) ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġprovide L exe me List (): ĠList < L exe me > Ġ{ ĊĠĠĠ Ġval Ġ( here , Ġcaller ) Ġ= Ġmodule Here And Caller () ĊĠĠĠ Ġentering ( here , Ġcaller ) ĊĊĠĠĠ Ġval Ġresult Ġ= ĠĊ ĉ if Ġ( lex eme List Register . isEmpty ()){ ĊĉĠĠĠ Ġbuild And Store L exe me List () Ċ ĉ } ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĉĠĠĠ Ġle xe me List Register . retrieve () Ċ ĉ } ĊĉĊĠĠĠ Ġif Ġ( is Trace ( here )) Ġprintln ("$ here : Ġoutput Ġle xe me ĠList Ġ'$ result '") ĊĠĠĠ Ġexiting ( here ) ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġprint L exe me List Ġ() Ġ{ ĊĠĠĠ Ġval Ġ( here , Ġcaller ) Ġ= Ġmodule Here And Caller () ĊĠĠĠ Ġentering ( here , Ġcaller ) ĊĊĠĠĠ Ġval Ġlex _ l Ġ= Ġprovide L exe me List Ġ() ĊĠĠĠ Ġval Ġstr _ l Ġ= Ġfullname ListOf L exe me List Ġ( lex _ l ) ĊĠĠĠ Ġval Ġcontent Ġ= Ġstring Of Gl ue Of String List Ġ(" \ n ", Ġstr _ l ) ĊĊĠĠĠ Ġprintln Ġ(" List Ġof ĠL exe mes Ġfrom ĠY ml Ġfile ") ĊĠĠĠ Ġprintln Ġ( content ) ĊĠĠĠ Ġexiting ( here ) Ċ } Ċ Ċ fun Ġwrite L exe me List Ġ() Ġ{ ĊĠĠĠ Ġval Ġ( here , Ġcaller ) Ġ= Ġmodule Here And Caller () ĊĠĠĠ Ġentering ( here , Ġcaller ) ĊĊĠĠĠ Ġval Ġlex _ l Ġ= Ġprovide L exe me List Ġ() ĊĠĠĠ Ġval Ġstr _ l Ġ= Ġfullname ListOf L exe me List Ġ( lex _ l ) ĊĠĠĠ Ġval Ġcontent Ġ= Ġstring Of Gl ue Of String List Ġ(" \ n ", Ġstr _ l ) ĊĊĠĠĠ Ġval Ġlex FileName Ġ= Ġprovide Any FileName Of What (" L exe me ") ĊĠĠĠ Ġoutput Write Of FilePath Ġ( lex FileName , Ġcontent ) ĊĊĠĠĠ Ġval Ġs iz Ġ= Ġlex _ l . size ĊĠĠĠ Ġprintln ("$ here : Ġ$ s iz Ġle xe mes Ġwritten Ġto ĠFile Ġ'$ lex FileName '") ĊĠĠĠ Ġexiting ( here ) Ċ } ĊĊ