| (*===----------------------------------------------------------------------=== | |
| * Main driver code. | |
| *===----------------------------------------------------------------------===*) | |
| 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; | |
| ;; | |
| main () |