let constructKillPredicates () =
let readAndAddPredicates_kill filename =
let doParse inchan =
let _ = VampyreErrormsg.startFile filename in
let lexbuf = Lexing.from_channel inchan in
let _ = VampyreErrormsg.theLexbuf := lexbuf in
Inputparse.main Inputflex.token lexbuf
in
ignore (Message.msg_string Message.Normal "Reading in kill predicates...");
try
let inchan = open_in filename
in
let a = doParse inchan
in
ignore (Message.msg_string Message.Normal "kill predicates read.\n") ;
List.iter (fun a -> Message.msg_string Message.Normal (Predicate.toString a)) a ;
a
with
Sys_error _ -> (Message.msg_string Message.Error ("Cannot find kill information in "^filename^"\n"); [])
| VampyreErrormsg.Error -> (Message.msg_string Message.Error ("Error raised in reading kill predicates\n"); [])
in
let killFile = Options.getValueOfString "killFile" in
if (killFile = "") then
[]
else
readAndAddPredicates_kill killFile