package Ġy 2 k . virtual u ire search Ċ Ċ import Ġcom . squareup . kotlin po et .* Ċ import Ġy 2 k . virtual u ire search . common . simple Name Ċ Ċ const Ġval Ġlibrary Package Ġ= Ġ" y 2 k . virtual . ui " Ċ Ċ fun Ġcreate Type Dsl ( input View Class : ĠType Name , Ġgroup : ĠBoolean ): ĠFun Spec Ġ{ ĊĠĠĠ Ġval Ġcomponent Class Ġ= ĠClass Name . best Guess ( input View Class . simple Name Ġ+ Ġ"_ ") ĊĠĠĠ Ġreturn ĠFun Spec ĊĠĠĠĠĠĠĠ Ġ. builder ( to Dsl Fun Name ( input View Class )) ĊĠĠĠĠĠĠĠ Ġ. add Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLambda TypeName . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit :: class . as TypeName () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. returns ( component Class ) ĊĠĠĠĠĠĠĠ Ġ. add Code ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ% L _() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . f () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal View Stack . last OrNull ()?. children ?. add ( x ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput View Class . simple Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group ) Ġ" global View Stack . push ( x )" Ġelse Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group ) Ġ" global View Stack . pop ()" Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ Ċ fun Ġto Dsl Fun Name ( input View Class : ĠType Name ): ĠString Ġ{ ĊĠĠĠ Ġval Ġx Ġ= Ġinput View Class . simple Name ĊĠĠĠ Ġreturn Ġx [ 0 ]. toLowerCase () Ġ+ Ġx . substring ( 1 ) Ċ } Ċ