blob: 73c1a1ec62a28865b0240e78b367f76b07a79181 [file] [log] [blame]
(*===----------------------------------------------------------------------===
* Main driver code.
*===----------------------------------------------------------------------===*)
open Llvm
let main () =
(* Install standard binary operators.
* 1 is the lowest precedence. *)
Hashtbl.add Parser.binop_precedence '<' 10;
Hashtbl.add Parser.binop_precedence '+' 20;
Hashtbl.add Parser.binop_precedence '-' 20;
Hashtbl.add Parser.binop_precedence '*' 40; (* highest. *)
(* Prime the first token. *)
print_string "ready> "; flush stdout;
let stream = Lexer.lex (Stream.of_channel stdin) in
(* Run the main "interpreter loop" now. *)
Toplevel.main_loop stream;
(* Print out all the generated code. *)
dump_module Codegen.the_module
;;
main ()