X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2Ftest_parser.ml;h=51a0d911f23ada0464480b5af8749ca441697102;hb=cbd78f48f8aa055e2d66922291717842d84383d1;hp=d6afddc670607b1099de6e7384f3bb9f28744458;hpb=c137ba88f68a47e567077909a23993c3c8c9854d;p=helm.git diff --git a/helm/ocaml/cic_disambiguation/test_parser.ml b/helm/ocaml/cic_disambiguation/test_parser.ml index d6afddc67..51a0d911f 100644 --- a/helm/ocaml/cic_disambiguation/test_parser.ml +++ b/helm/ocaml/cic_disambiguation/test_parser.ml @@ -23,55 +23,51 @@ * http://helm.cs.unibo.it/ *) -let default_mode = `Term - -let mode = ref default_mode - -(* let pp_tactical = TacticAstPp.pp_tactical *) +open Printf let pp_tactical = TacticAst2Box.tacticalPp - -let _ = +let mode = try match Sys.argv.(1) with - | "alias" -> mode := `Alias - | "term" -> mode := `Term - | "tactic" -> mode := `Tactic - | "tactical" -> mode := `Tactical + | "alias" -> prerr_endline "Alias"; `Alias + | "term" -> prerr_endline "Term"; `Term + | "tactic" -> prerr_endline "Tactic"; `Tactic + | "tactical" -> prerr_endline "Tactical"; `Tactical | _ -> prerr_endline "What???????"; exit 1 - with Invalid_argument _ -> () + with Invalid_argument _ -> prerr_endline "Term"; `Term let _ = let ic = stdin in try while true do + let line = input_line ic in + let istream = Stream.of_string line in try - let line = input_line ic in - let istream = Stream.of_string line in - (match !mode with + (match mode with | `Term -> let term = CicTextualParser2.parse_term istream in print_endline (BoxPp.pp_term term) | `Tactic -> - let term = CicTextualParser2.parse_tactic istream in - print_endline (TacticAstPp.pp_tactic term) + let tac = CicTextualParser2.parse_tactic istream in + print_endline (TacticAstPp.pp_tactic tac) | `Tactical -> - let term = CicTextualParser2.parse_tactical istream in - print_endline (pp_tactical term) + let tac = CicTextualParser2.parse_tactical istream in + print_endline (pp_tactical tac) | `Alias -> let env = CicTextualParser2.EnvironmentP3.of_string line in print_endline (CicTextualParser2.EnvironmentP3.to_string env)); flush stdout with - | CicTextualParser2.Parse_error msg -> prerr_endline msg -(* - | Stdpp.Exc_located ((p_start, p_end), exn) -> - prerr_endline (Printf.sprintf "Exception at character %d-%d: %s" - p_start p_end (Printexc.to_string exn)) -*) + | CicTextualParser2.Parse_error (floc, msg) -> + let (x, y) = CicAst.loc_of_floc floc in + let before = String.sub line 0 x in + let error = String.sub line x (y - x) in + let after = String.sub line y (String.length line - y) in + eprintf "%s%s%s\n" before error after; + prerr_endline (sprintf "at character %d-%d: %s" x y msg) done with End_of_file -> close_in ic