diff options
Diffstat (limited to 'stdlib/source/program/compositor')
-rw-r--r-- | stdlib/source/program/compositor/cli.lux | 81 | ||||
-rw-r--r-- | stdlib/source/program/compositor/export.lux | 55 | ||||
-rw-r--r-- | stdlib/source/program/compositor/import.lux | 8 |
3 files changed, 29 insertions, 115 deletions
diff --git a/stdlib/source/program/compositor/cli.lux b/stdlib/source/program/compositor/cli.lux deleted file mode 100644 index 1962569b3..000000000 --- a/stdlib/source/program/compositor/cli.lux +++ /dev/null @@ -1,81 +0,0 @@ -(.using - [library - [lux {"-" Module Source} - [control - [pipe {"+" case>}] - ["<>" parser - ["[0]" cli {"+" Parser}]]] - [tool - [compiler - [meta - [archive - [module - [descriptor {"+" Module}]]]]]] - [world - [file {"+" Path}]]]]) - -(type: .public Source - Path) - -(type: .public Host_Dependency - Path) - -(type: .public Library - Path) - -(type: .public Target - Path) - -(type: .public Compilation - [(List Source) (List Host_Dependency) (List Library) Target Module]) - -(type: .public Export - [(List Source) Target]) - -(type: .public Service - (Variant - {#Compilation Compilation} - {#Interpretation Compilation} - {#Export Export})) - -(template [<name> <long> <type>] - [(def: <name> - (Parser <type>) - (cli.named <long> cli.any))] - - [source_parser "--source" Source] - [host_dependency_parser "--host_dependency" Host_Dependency] - [library_parser "--library" Library] - [target_parser "--target" Target] - [module_parser "--module" Module] - ) - -(def: .public service - (Parser Service) - ($_ <>.or - (<>.after (cli.this "build") - ($_ <>.and - (<>.some ..source_parser) - (<>.some ..host_dependency_parser) - (<>.some ..library_parser) - ..target_parser - ..module_parser)) - (<>.after (cli.this "repl") - ($_ <>.and - (<>.some ..source_parser) - (<>.some ..host_dependency_parser) - (<>.some ..library_parser) - ..target_parser - ..module_parser)) - (<>.after (cli.this "export") - ($_ <>.and - (<>.some ..source_parser) - ..target_parser)) - )) - -(def: .public target - (-> Service Target) - (|>> (case> (^or {#Compilation [sources host_dependencies libraries target module]} - {#Interpretation [sources host_dependencies libraries target module]} - {#Export [sources target]}) - target))) diff --git a/stdlib/source/program/compositor/export.lux b/stdlib/source/program/compositor/export.lux index cb19398e7..4ac08f423 100644 --- a/stdlib/source/program/compositor/export.lux +++ b/stdlib/source/program/compositor/export.lux @@ -1,32 +1,31 @@ (.using - [library - [lux {"-" Source} - [abstract - ["[0]" monad {"+" do}]] - [control - ["[0]" try {"+" Try}] - [concurrency - ["[0]" async {"+" Async}]]] - [data - ["[0]" text - ["%" format {"+" format}]] - [collection - ["[0]" dictionary] - ["[0]" sequence]] - [format - ["[0]" binary] - ["[0]" tar]]] - [time - ["[0]" instant]] - [tool - [compiler - [meta - ["[0]" io "_" - ["[1]" context {"+" Extension}]]]]] - [world - ["[0]" file]]]] - [// - [cli {"+" Source Export}]]) + [library + [lux {"-" Source} + [abstract + ["[0]" monad {"+" do}]] + [control + ["[0]" try {"+" Try}] + [concurrency + ["[0]" async {"+" Async}]]] + [data + ["[0]" text + ["%" format {"+" format}]] + [collection + ["[0]" dictionary] + ["[0]" sequence]] + [format + ["[0]" binary] + ["[0]" tar]]] + [time + ["[0]" instant]] + [tool + [compiler + [meta + [cli {"+" Source Export}] + ["[0]" io "_" + ["[1]" context {"+" Extension}]]]]] + [world + ["[0]" file]]]]) (def: file "library.tar") diff --git a/stdlib/source/program/compositor/import.lux b/stdlib/source/program/compositor/import.lux index 9554ec934..7f21f20ec 100644 --- a/stdlib/source/program/compositor/import.lux +++ b/stdlib/source/program/compositor/import.lux @@ -22,13 +22,9 @@ [tool [compiler [meta - [archive - [module - [descriptor {"+" Module}]]]]]] + [cli {"+" Library Module}]]]] [world - ["[0]" file]]]] - [// - [cli {"+" Library}]]) + ["[0]" file]]]]) (def: Action (type (All (_ a) (Async (Try a))))) |