(.module: [lux #* [control ["p" parser ["." cli (#+ Parser)]]] [world [file (#+ Path)]]] ## [/// ## [importer (#+ Source)]] ) (type: #export Configuration {## #sources (List Source) #sources (List Path) #target Path #module Text}) (type: #export Service (#Compilation Configuration) (#Interpretation Configuration)) (template [ ] [(def: #export (Parser Text) (cli.named cli.any))] [source "--source"] [target "--target"] [module "--module"] ) (def: #export configuration (Parser Configuration) ($_ p.and (p.some ..source) ..target ..module)) (def: #export service (Parser Service) ($_ p.or (p.after (cli.this "build") ..configuration) (p.after (cli.this "repl") ..configuration)))