CLI converts stdin -> kiss expressions -> Haxe -> Stdout
This commit is contained in:
@@ -1,4 +1,29 @@
|
|||||||
package kiss;
|
package kiss;
|
||||||
|
|
||||||
@:build(kiss.Kiss.build("src/kiss/Main.kiss"))
|
#if macro
|
||||||
class Main {}
|
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