X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2Ftest_parser.ml;h=31bcdad054e19763f646e09527a5455c63ee80f5;hb=e937a197c1123e9adc6b2036ae47c7952ebbf138;hp=51a0d911f23ada0464480b5af8749ca441697102;hpb=78c95f6f3ed42633c4b2cbf62b816538d4208d7c;p=helm.git diff --git a/helm/ocaml/cic_disambiguation/test_parser.ml b/helm/ocaml/cic_disambiguation/test_parser.ml index 51a0d911f..31bcdad05 100644 --- a/helm/ocaml/cic_disambiguation/test_parser.ml +++ b/helm/ocaml/cic_disambiguation/test_parser.ml @@ -30,45 +30,62 @@ let pp_tactical = TacticAst2Box.tacticalPp let mode = try match Sys.argv.(1) with - | "alias" -> prerr_endline "Alias"; `Alias | "term" -> prerr_endline "Term"; `Term - | "tactic" -> prerr_endline "Tactic"; `Tactic - | "tactical" -> prerr_endline "Tactical"; `Tactical + | "statement" -> prerr_endline "Statement"; `Statement +(* | "script" -> prerr_endline "Script"; `Script *) | _ -> prerr_endline "What???????"; exit 1 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 - (match mode with - | `Term -> - let term = CicTextualParser2.parse_term istream in - print_endline (BoxPp.pp_term term) - | `Tactic -> - let tac = CicTextualParser2.parse_tactic istream in - print_endline (TacticAstPp.pp_tactic tac) - | `Tactical -> - 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 (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 +(* + if mode = `Script then + let ic = open_in Sys.argv.(2) in + let istream = Stream.of_channel ic in + let (loc, script) = CicTextualParser2.parse_script istream in + List.iter + (function + | DisambiguateTypes.Command cmd -> print_endline (pp_tactical cmd) + | DisambiguateTypes.Comment (loc, s) -> print_endline s) + script + else +*) + let ic = stdin in + try + while true do + let line = input_line ic in + let istream = Stream.of_string line in + try + (match mode with + | `Term -> + let term = CicTextualParser2.parse_term istream in + print_endline (BoxPp.pp_term term) + | `Statement -> + (match CicTextualParser2.parse_statement istream with + | TacticAst.Command (_, cmd) -> + print_endline (TacticAstPp.pp_command cmd) + | TacticAst.Tactical (_, tac) -> + print_endline (TacticAstPp.pp_tactical tac)) +(* + | `Tactical -> + 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) + | _ -> assert false); + flush stdout + with + | 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