1*9880d681SAndroid Build Coastguard Worker(*===----------------------------------------------------------------------=== 2*9880d681SAndroid Build Coastguard Worker * Main driver code. 3*9880d681SAndroid Build Coastguard Worker *===----------------------------------------------------------------------===*) 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workeropen Llvm 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerlet main () = 8*9880d681SAndroid Build Coastguard Worker (* Install standard binary operators. 9*9880d681SAndroid Build Coastguard Worker * 1 is the lowest precedence. *) 10*9880d681SAndroid Build Coastguard Worker Hashtbl.add Parser.binop_precedence '<' 10; 11*9880d681SAndroid Build Coastguard Worker Hashtbl.add Parser.binop_precedence '+' 20; 12*9880d681SAndroid Build Coastguard Worker Hashtbl.add Parser.binop_precedence '-' 20; 13*9880d681SAndroid Build Coastguard Worker Hashtbl.add Parser.binop_precedence '*' 40; (* highest. *) 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker (* Prime the first token. *) 16*9880d681SAndroid Build Coastguard Worker print_string "ready> "; flush stdout; 17*9880d681SAndroid Build Coastguard Worker let stream = Lexer.lex (Stream.of_channel stdin) in 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker (* Run the main "interpreter loop" now. *) 20*9880d681SAndroid Build Coastguard Worker Toplevel.main_loop stream; 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker (* Print out all the generated code. *) 23*9880d681SAndroid Build Coastguard Worker dump_module Codegen.the_module 24*9880d681SAndroid Build Coastguard Worker;; 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workermain () 27