bin: introduce a non-binary job_type
This will later help improve the handling of different input types of ltlsynt. * bin/common_finput.hh (job_type): New enum. (job::type): Use it. * bin/autcross.cc, bin/autfilt.cc, bin/common_finput.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/ltlsynt.cc: Adjust to use the job_type enum instead of a boolean.
This commit is contained in:
parent
3b809c0a14
commit
d697f57a97
12 changed files with 54 additions and 44 deletions
|
|
@ -162,7 +162,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
switch (key)
|
||||
{
|
||||
case 'F':
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
break;
|
||||
case 'q':
|
||||
quiet = true;
|
||||
|
|
@ -216,7 +216,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
if (arg[0] == '-' && !arg[1])
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
else
|
||||
tools_push_autproc(arg);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -761,7 +761,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
automaton_format = Count;
|
||||
break;
|
||||
case 'F':
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
break;
|
||||
case 'n':
|
||||
opt_max_count = to_pos_int(arg, "-n/--max-count");
|
||||
|
|
@ -1252,7 +1252,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
opt_art_sccs_set = true;
|
||||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2017, 2019, 2021 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2012-2017, 2019, 2021, 2022 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -68,10 +68,10 @@ parse_opt_finput(int key, char* arg, struct argp_state*)
|
|||
switch (key)
|
||||
{
|
||||
case 'f':
|
||||
jobs.emplace_back(arg, false);
|
||||
jobs.emplace_back(arg, job_type::LTL_STRING);
|
||||
break;
|
||||
case 'F':
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::LTL_FILENAME);
|
||||
break;
|
||||
case OPT_LBT:
|
||||
lbt_input = true;
|
||||
|
|
@ -358,10 +358,18 @@ job_processor::run()
|
|||
int error = 0;
|
||||
for (auto& j: jobs)
|
||||
{
|
||||
if (!j.file_p)
|
||||
switch (j.type)
|
||||
{
|
||||
case job_type::LTL_STRING:
|
||||
error |= process_string(j.str);
|
||||
else
|
||||
break;
|
||||
case job_type::LTL_FILENAME:
|
||||
case job_type::AUT_FILENAME:
|
||||
error |= process_file(j.str);
|
||||
break;
|
||||
default:
|
||||
throw std::runtime_error("unexpected job type");
|
||||
}
|
||||
if (abort_run)
|
||||
break;
|
||||
}
|
||||
|
|
@ -376,7 +384,7 @@ void check_no_formula()
|
|||
error(2, 0, "No formula to translate? Run '%s --help' for help.\n"
|
||||
"Use '%s -' to force reading formulas from the standard "
|
||||
"input.", program_name, program_name);
|
||||
jobs.emplace_back("-", true);
|
||||
jobs.emplace_back("-", job_type::LTL_FILENAME);
|
||||
}
|
||||
|
||||
void check_no_automaton()
|
||||
|
|
@ -387,5 +395,5 @@ void check_no_automaton()
|
|||
error(2, 0, "No automaton to process? Run '%s --help' for help.\n"
|
||||
"Use '%s -' to force reading automata from the standard "
|
||||
"input.", program_name, program_name);
|
||||
jobs.emplace_back("-", true);
|
||||
jobs.emplace_back("-", job_type::AUT_FILENAME);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2017 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
// Copyright (C) 2012-2017, 2022 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -25,13 +25,17 @@
|
|||
#include <vector>
|
||||
#include <spot/tl/parse.hh>
|
||||
|
||||
enum class job_type : char { LTL_STRING,
|
||||
LTL_FILENAME,
|
||||
AUT_FILENAME };
|
||||
|
||||
struct job
|
||||
{
|
||||
const char* str;
|
||||
bool file_p; // true if str is a filename, false if it is a formula
|
||||
job_type type;
|
||||
|
||||
job(const char* str, bool file_p) noexcept
|
||||
: str(str), file_p(file_p)
|
||||
job(const char* str, job_type type) noexcept
|
||||
: str(str), type(type)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2013-2019 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2013-2019, 2022 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -89,7 +89,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
switch (key)
|
||||
{
|
||||
case 'F':
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
break;
|
||||
case 'x':
|
||||
{
|
||||
|
|
@ -99,7 +99,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
}
|
||||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::AUT_FILENAME);
|
||||
break;
|
||||
default:
|
||||
return ARGP_ERR_UNKNOWN;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2019 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
// Copyright (C) 2012-2019, 2022 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -105,10 +105,9 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
// FIXME: use stat() to distinguish filename from string?
|
||||
if (*arg == '-' && !arg[1])
|
||||
jobs.emplace_back(arg, true);
|
||||
else
|
||||
jobs.emplace_back(arg, false);
|
||||
jobs.emplace_back(arg, ((*arg == '-' && !arg[1])
|
||||
? job_type::LTL_FILENAME
|
||||
: job_type::LTL_STRING));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2020 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
// Copyright (C) 2012-2020, 2022 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -148,10 +148,9 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
// FIXME: use stat() to distinguish filename from string?
|
||||
if (*arg == '-' && !arg[1])
|
||||
jobs.emplace_back(arg, true);
|
||||
else
|
||||
jobs.emplace_back(arg, false);
|
||||
jobs.emplace_back(arg, ((*arg == '-' && !arg[1])
|
||||
? job_type::LTL_FILENAME
|
||||
: job_type::LTL_STRING));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2020 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2012-2020, 2022 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -484,7 +484,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
if (arg[0] == '-' && !arg[1])
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::LTL_FILENAME);
|
||||
else
|
||||
tools_push_trans(arg);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2015-2020 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2015-2020, 2022 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -193,7 +193,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
if (arg[0] == '-' && !arg[1])
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::LTL_FILENAME);
|
||||
else
|
||||
tools_push_trans(arg);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2021 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2012-2022 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -387,7 +387,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
// FIXME: use stat() to distinguish filename from string?
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::LTL_FILENAME);
|
||||
break;
|
||||
case OPT_ACCEPT_WORD:
|
||||
try
|
||||
|
|
@ -876,7 +876,7 @@ main(int argc, char** argv)
|
|||
exit(err);
|
||||
|
||||
if (jobs.empty())
|
||||
jobs.emplace_back("-", 1);
|
||||
jobs.emplace_back("-", job_type::LTL_FILENAME);
|
||||
|
||||
if (boolean_to_isop && simplification_level == 0)
|
||||
simplification_level = 1;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014, 2015, 2016, 2017, 2018, 2019 Laboratoire de Recherche et
|
||||
// Copyright (C) 2014-2019, 2022 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -143,7 +143,7 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case ARGP_KEY_ARG:
|
||||
// FIXME: use stat() to distinguish filename from string?
|
||||
jobs.emplace_back(arg, true);
|
||||
jobs.emplace_back(arg, job_type::LTL_FILENAME);
|
||||
break;
|
||||
case OPT_AP2CONST:
|
||||
opt_all = 0;
|
||||
|
|
|
|||
|
|
@ -776,7 +776,7 @@ main(int argc, char **argv)
|
|||
static char arg4[] = "fully";
|
||||
char* command[] = { arg0, arg1, arg2, arg3, arg4, opt_tlsf, nullptr };
|
||||
opt_tlsf_string = read_stdout_of_command(command);
|
||||
jobs.emplace_back(opt_tlsf_string.c_str(), false);
|
||||
jobs.emplace_back(opt_tlsf_string.c_str(), job_type::LTL_STRING);
|
||||
|
||||
if (!all_input_aps.has_value() && !all_output_aps.has_value())
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue