let inputCustomAbs () =
let read_abs_info filename =
let doParse inchan =
let _ = VampyreErrormsg.startFile filename in
let lexbuf = Lexing.from_channel inchan in
let _ = VampyreErrormsg.theLexbuf := lexbuf in
Absparse.main Absflex.token lexbuf
in
ignore (Message.msg_string Message.Normal "Reading in abstraction ...");
try
let inchan = open_in filename
in
let a = doParse inchan
in
ignore (Message.msg_string Message.Normal " Abstraction read.\n") ;
a
with
Sys_error _ -> (Message.msg_string Message.Error ("Cannot find abstraction info in "^filename^".\n"); ([],None,[]))
| VampyreErrormsg.Error -> (Message.msg_string Message.Error ("Error raised in reading abstraction \n"); ([],None,[]))
in
let abs_file = Options.getValueOfString "custom" in
if (abs_file = "") then
([],None,[])
else
read_abs_info abs_file