diff options
author | Malte Voos <git@mal.tc> | 2024-06-23 23:31:59 +0200 |
---|---|---|
committer | Malte Voos <git@mal.tc> | 2024-06-24 00:16:55 +0200 |
commit | 5d227bcd0055d02e1d49a3dcd27e80a756923d5b (patch) | |
tree | da468ad3a8f3caf709b731ca2678c86a5a015990 /bin/main.ml | |
parent | 8d40541003736d5319ec981278338e8c8c66daf6 (diff) | |
download | toytt-5d227bcd0055d02e1d49a3dcd27e80a756923d5b.tar.gz toytt-5d227bcd0055d02e1d49a3dcd27e80a756923d5b.zip |
split code into smaller libraries and make a better repl
Diffstat (limited to 'bin/main.ml')
-rw-r--r-- | bin/main.ml | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/bin/main.ml b/bin/main.ml deleted file mode 100644 index afae47c..0000000 --- a/bin/main.ml +++ /dev/null @@ -1,25 +0,0 @@ -open Toytt - -module Term = Asai.Tty.Make(Reporter.Message) - -let parse (s : string) : Ast.expr = - let lexbuf = Lexing.from_string s in - let string_source : Asai.Range.string_source = { - title = None; - content = s; - } in - let source = `String string_source in - ParserEff.Eff.run ~env:source @@ fun () -> - let ast = Parser.parse Lexer.lex lexbuf in - ast - -let rec repl () = - let input = read_line () in - let ast = parse input in - let (tp, tm) = Elab.infer_toplevel ast in - let value = Eval.eval ~env:Emp tm in - Format.printf "%a : %a\n%!" Syntax.Pretty.pp (Quote.quote ~size:0 value, Emp) Syntax.Pretty.pp (Quote.quote ~size:0 tp, Emp); - repl () - -let () = - Reporter.run ~emit:Term.display ~fatal:Term.display @@ fun () -> repl () |