import Ġcom . h ank ad ler . io . Get Opt čĊč Ċ fun Ġmain () Ġ{ čĊĠĠĠ Ġvar Ġargv : ĠArray < String > čĊĠĠĠ Ġvar Ġshort Opts : ĠString čĊĠĠĠ Ġvar Ġlong Opts : ĠList < String > čĊčĊĠĠĠ Ġshort Opts Ġ= Ġ" rf i :" čĊĠĠĠ Ġtest Parse Short Opts ( short Opts ) čĊčĊĠĠĠ Ġ// ĠGood čĊĠĠĠ Ġlong Opts Ġ= ĠlistOf (" long ", Ġ" long - opt =", Ġ" ll ") čĊĠĠĠ Ġtest Parse Long Opts ( long Opts ) čĊčĊĠĠĠ Ġ// ĠBad čĊĠĠĠ Ġlong Opts Ġ= ĠlistOf (" long Ġ", Ġ" 0 long ", Ġ" a ", Ġ" long -", Ġ"-- ", Ġ" long - option - =") čĊĠĠĠ Ġfor Ġ( opt Ġin Ġlong Opts ) Ġ{ čĊĠĠĠĠĠĠĠ Ġtest Parse Long Opts ( listOf ( opt )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// ĠCase Ġ 0 1 čĊĠĠĠ Ġshort Opts Ġ= Ġ" hr fi : Hw :" čĊĠĠĠ Ġlong Opts Ġ= ĠlistOf (" help ", Ġ" recursive ", Ġ" force ", Ġ" input =", Ġ" human - readable ", Ġ" with - value =") čĊĠĠĠ Ġargv Ġ= ĠarrayOf ("- r ", Ġ"-- force ", Ġ"- ipe pe . txt ", Ġ" pap o ", Ġ"- H ", Ġ"- w ", Ġ" some Ġlist ", Ġ" arg 1 ", Ġ" arg 2 ") čĊĠĠĠ ĠtestGet Opt ( argv , Ġshort Opts , Ġlong Opts ) čĊčĊĠĠĠ Ġ// ĠCase Ġ 0 2 čĊĠĠĠ Ġshort Opts Ġ= Ġ" h : ri :" čĊĠĠĠ Ġlong Opts Ġ= ĠlistOf (" help ", Ġ" recursive ", Ġ" input =", Ġ" with - value =") čĊĠĠĠ Ġargv Ġ= ĠarrayOf ("- r ", Ġ"- ipe pe . txt ", Ġ" pap o ", Ġ" arg 1 ", Ġ" arg 2 ") čĊĠĠĠ ĠtestGet Opt ( argv , Ġshort Opts , Ġlong Opts ) čĊčĊĠĠĠ Ġ// ĠCase Ġ 0 3 čĊĠĠĠ Ġshort Opts Ġ= Ġ" hi :" čĊĠĠĠ Ġlong Opts Ġ= ĠlistOf (" help ", Ġ" input =", Ġ" with - value =") čĊĠĠĠ ĠarrayOf ("- r ", Ġ"- ipe pe . txt ", Ġ" pap o ", Ġ" arg 1 ", Ġ" arg 2 ") čĊĠĠĠ ĠtestGet Opt ( argv , Ġshort Opts , Ġlong Opts ) č Ċ } čĊč Ċ fun ĠtestGet Opt ( argv : ĠArray < String >, Ġshort Opts : ĠString , Ġlong Opts : ĠList < String >) Ġ{ čĊĠĠĠ Ġprintln ("\ n --- ĠTest : Ġget Opt () Ġ--- ") čĊĠĠĠ Ġprintln (" INPUT ") čĊĠĠĠ Ġprintln (" ĠĠĠĠĠĠĠĠ Ġargv : Ġ${ argv . toList () }") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġshort Opts : Ġ$ short Opts ") čĊĠĠĠ Ġprintln (" ĠĠĠĠ Ġlong Opts : Ġ$ long Opts ") čĊčĊĠĠĠ Ġval Ġ( opts , Ġargs ) Ġ= ĠGet Opt . get Opt ( argv , Ġshort Opts , Ġlong Opts ) čĊčĊĠĠĠ Ġprintln (" OUTPUT ") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġopts : Ġ$ opts ") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġargs : Ġ${ args . toList () }") č Ċ } čĊč Ċ fun Ġtest Parse Short Opts ( short Opts : ĠString ) Ġ{ čĊĠĠĠ Ġprintln ("\ n --- ĠTest : Ġparse Short Opts () Ġ--- ") čĊĠĠĠ Ġprintln (" INPUT ") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġshort Opts : Ġ$ short Opts ") čĊĠĠĠ Ġprintln (" OUTPUT ") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġ" Ġ+ ĠGet Opt . parse Short Opts ( short Opts )) č Ċ } čĊč Ċ fun Ġtest Parse Long Opts ( long Opts : ĠList < String >): ĠBoolean Ġ{ čĊĠĠĠ Ġprintln ("\ n --- ĠTest : Ġare Long Opts Valid () Ġ--- ") čĊĠĠĠ Ġprintln (" INPUT ") čĊĠĠĠ Ġprintln (" ĠĠĠ Ġlong Opts : Ġ$ long Opts ") čĊĠĠĠ Ġprintln (" OUTPUT ") čĊĠĠĠ Ġreturn Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġprintln (" ĠĠĠ Ġ" Ġ+ ĠGet Opt . parse Long Opts ( long Opts )) čĊĠĠĠĠĠĠĠ Ġtrue čĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠ Ġprintln (" ĠĠĠ Ġ" Ġ+ Ġe . message ) čĊĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠ Ġ} č Ċ } čĊ