From 3175ae85d62ff6f692b8cc127f56c6569041d788 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 1 May 2017 18:15:14 -0400 Subject: - WIP: Some initial implementations for some re-written infrastructure. --- new-luxc/source/program.lux | 51 ++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 38 deletions(-) (limited to 'new-luxc/source/program.lux') diff --git a/new-luxc/source/program.lux b/new-luxc/source/program.lux index b1619e830..07f21962b 100644 --- a/new-luxc/source/program.lux +++ b/new-luxc/source/program.lux @@ -3,27 +3,16 @@ (lux (control monad) [io #- run] [cli #+ program: CLI Monad]) - (luxc ["&;" parser])) - -(type: Path Text) - -(type: Platform - #JVM - #JS) - -(type: Mode - #Release - #Debug) + (luxc ["&" base] + ["&;" parser] + ["&;" compiler] + (module (descriptor ["&;" type])) + )) (type: Compilation - {#mode Mode - #platform Platform - #program Path - #target Path}) - -(type: Inputs - {#resources (List Path) - #sources (List Path)}) + {#mode &;Mode + #program &;Path + #target &;Path}) (def: (marker tokens) (-> (List Text) (CLI Unit)) @@ -36,37 +25,23 @@ cli;any)) (def: mode^ - (CLI Mode) + (CLI &;Mode) ($_ cli;alt (marker (list "release")) (marker (list "debug")))) -(def: platform^ - (CLI Platform) - ($_ cli;alt - (marker (list "jvm")) - (marker (list "js")))) - (def: compilation^ (CLI Compilation) ($_ cli;seq mode^ - platform^ (tagged (list "-p" "--program")) (tagged (list "-t" "--target")))) -(def: inputs^ - (CLI Inputs) - ($_ cli;seq - (cli;some (tagged (list "-r" "--resource"))) - (cli;some (tagged (list "-s" "--source"))))) - -(program: ([[command [resources sources]] - (cli;seq (cli;opt compilation^) - inputs^)]) +(program: ([command (cli;opt compilation^)] + [sources (cli;some (tagged (list "-s" "--source")))]) (case command #;None (io (log! "Hello, REPL!")) - (#;Some [mode platform program target]) - (io (log! "Hello, compilation!")))) + (#;Some [mode program target]) + (&compiler;compile-program mode program target sources))) -- cgit v1.2.3