let main () = print_string "Theme v3\n"; try while true do print_string "; "; flush stdout; let line = read_line () in let lexbuf = Lexing.from_string line in let term = Parser.whereexpr Lexer.token lexbuf in print_string (Pretty.term term); print_string "\n"; print_string "\n"; let imm = Compile.compile term in print_string (Pretty.immediate imm); print_string "\n"; print_string "\n"; try print_string (Pretty.value (Eval.run imm)); print_string "\n"; print_string "\n"; with Failure (msg) -> print_string ("ERROR: " ^ msg ^ "\n"); () done with End_of_file -> print_string "exiting.\n"; exit 0 let _ = Printexc.print main ()