let constructInitialPredicates predFile =
let readAndAddPredicates 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 seed predicates...");
try
let inchan = open_in filename
in
let a = doParse inchan
in
ignore (Message.msg_string Message.Normal "Seed predicates read.\n") ;
List.iter (fun a -> Message.msg_string Message.Normal (Predicate.toString a)) a ;
Message.msg_string Message.Normal ("Read "^(string_of_int (List.length a))^" predicates");
a
with
Sys_error _ -> (Message.msg_string Message.Error ("Cannot find predicate information in "^filename^".\n"); [])
| VampyreErrormsg.Error -> (Message.msg_string Message.Error ("Error raised in reading seed predicates.\n"); [])
in
if (predFile = "") then
[]
else
readAndAddPredicates predFile