Add subcommand for verifying programs

This commit is contained in:
Patrick Lühne 2020-02-03 22:20:13 +01:00
parent 072fa34e69
commit ad3a2d18f8
Signed by: patrick
GPG Key ID: 05F3611E97A70ABF

View File

@ -2,21 +2,31 @@ use structopt::StructOpt as _;
#[derive(Debug, structopt::StructOpt)]
#[structopt(name = "anthem", about = "Use first-order theorem provers with answer set programs.")]
struct Options
enum Command
{
#[structopt(parse(from_os_str))]
input: Vec<std::path::PathBuf>,
#[structopt(about = "Verifies a logic program against a specification")]
VerifyProgram
{
#[structopt(parse(from_os_str))]
input: Vec<std::path::PathBuf>,
}
}
fn main()
{
pretty_env_logger::init();
let options = Options::from_args();
let command = Command::from_args();
if let Err(error) = anthem::translate::verify_properties::translate(&options.input)
match command
{
log::error!("could not translate input program: {}", error);
std::process::exit(1)
Command::VerifyProgram{input} =>
{
if let Err(error) = anthem::translate::verify_properties::translate(&input)
{
log::error!("could not translate input program: {}", error);
std::process::exit(1)
}
},
}
}