CLI converts stdin -> kiss expressions -> Haxe -> Stdout
This commit is contained in:
@@ -1,4 +1,29 @@
|
||||
package kiss;
|
||||
|
||||
@:build(kiss.Kiss.build("src/kiss/Main.kiss"))
|
||||
class Main {}
|
||||
#if macro
|
||||
import haxe.macro.Expr;
|
||||
import kiss.Kiss;
|
||||
import kiss.Reader;
|
||||
import kiss.Stream;
|
||||
|
||||
using tink.MacroApi;
|
||||
#end
|
||||
|
||||
class Main {
|
||||
static macro function macroMain():Expr {
|
||||
var kissInputStream = Stream.fromString(Sys.stdin().readAll().toString());
|
||||
var k = Kiss.defaultKissState();
|
||||
Reader.readAndProcess(kissInputStream, k, (readerExp) -> {
|
||||
Sys.println(Kiss.readerExpToHaxeExpr(readerExp, k).toString());
|
||||
});
|
||||
|
||||
return macro null;
|
||||
}
|
||||
|
||||
// When called from the command-line, `kiss` converts its stdin output to Haxe expressions
|
||||
// TODO write tests for this
|
||||
// TODO use this to implement runAtRuntime() for sys targets by running a haxe subprocess
|
||||
static function main() {
|
||||
macroMain();
|
||||
}
|
||||
}
|
||||
|
@@ -1,2 +0,0 @@
|
||||
(defun main []
|
||||
(print "Hello, world!"))
|
Reference in New Issue
Block a user