let constructEnvironmentAssumptions () =
let readAndAddAssumptions filename =
let doParse inchan =
let _ = VampyreErrormsg.startFile filename in
let lexbuf = Lexing.from_channel inchan in
let _ = VampyreErrormsg.theLexbuf := lexbuf in
Inputparse.env_assumptions Inputflex.token lexbuf
in
ignore (Message.msg_string Message.Normal "Reading in environment assumptions ...");
try
let inchan = open_in filename
in
let a = doParse inchan
in
ignore (Message.msg_string Message.Normal "Assumptions read.\n") ;
List.iter (fun (l,p) -> Message.msg_string Message.Normal ((Expression.lvalToString l )^" : "^(Predicate.toString p))) a ;
a
with
Sys_error _ -> (Message.msg_string Message.Error ("Cannot find assumption information in "^filename^".\n"); [])
| VampyreErrormsg.Error -> (Message.msg_string Message.Error ("Error raised in reading assumptions.\n"); [])
in
let asmFile = Options.getValueOfString "easm" in
if (asmFile = "") then
[]
else
readAndAddAssumptions asmFile