Guest User

Untitled

a guest
Jun 23rd, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.82 KB | None | 0 0
  1. let lexbuf = Lexing.from_channel stdin
  2.  
  3. let parse () = Parser.main Lexer.token lexbuf
  4. let parse_listFn () = Parser.main_bis Lexer.token lexbuf
  5.  
  6. (* avec main et main_bis qui ne differe que sur le type renvoye *)
  7.  
  8. let declarations = parse_listFn ()
  9.  
  10. let compile e =
  11.   begin
  12.     en_tete ();
  13.  
  14.     defFun_to_spim declarations;
  15.  
  16.     engendre e;
  17.  
  18.     concl ()
  19.   end
  20.  
  21. (* la boucle interactive *)
  22. let calc () =
  23.   try
  24.        parcours_et_verifie [] declarations;
  25.  
  26.  
  27.       let result = parse () in
  28.     compile result;
  29.     flush stdout
  30.  
  31.   with     Bad_declaration_idf -> (print_string "fonction mal declaree : son expression contient une fonction non definie\n")
  32.     |  Bad_declaration_arg -> (print_string "fonction mal declaree : son expression contient des variables non definies\n")
  33.     | _ -> (print_string "erreur de saisie\n")
  34. ;;
Add Comment
Please, Sign In to add comment