parsetl: change the interface to return a parsed_formula
This gets the interface of all the functions parsing formula in line with the interface of the automaton parser: both return a "parsed_*" object (parsed_formula or parsed_automaton) that contains the said object and its list of errors. Doing so avoid having to declare the parse_error_list in advance. * spot/tl/parse.hh, spot/parsetl/parsetl.yy: Do the change. * spot/parsetl/fmterror.cc: Adjust the error printer. * NEWS: Document it. * bin/common_finput.cc, bin/common_finput.hh, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc, doc/org/tut01.org, doc/org/tut02.org, doc/org/tut10.org, doc/org/tut20.org, python/ajax/spotcgi.in, python/spot/impl.i, spot/parseaut/parseaut.yy, tests/core/checkpsl.cc, tests/core/checkta.cc, tests/core/consterm.cc, tests/core/emptchk.cc, tests/core/equalsf.cc, tests/core/ikwiad.cc, tests/core/kind.cc, tests/core/length.cc, tests/core/ltlprod.cc, tests/core/ltlrel.cc, tests/core/randtgba.cc, tests/core/readltl.cc, tests/core/reduc.cc, tests/core/safra.cc, tests/core/syntimpl.cc, tests/core/tostring.cc, tests/ltsmin/modelcheck.cc, tests/python/alarm.py, tests/python/interdep.py, tests/python/ltl2tgba.py, tests/python/ltlparse.py: Adjust all uses.
This commit is contained in:
parent
cf4f58c34b
commit
22f442f758
37 changed files with 359 additions and 374 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2014, 2015, 2016 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -60,11 +60,10 @@ main(int argc, char** argv)
|
|||
if (s.empty() || s[0] == '#') // Skip comments
|
||||
continue;
|
||||
|
||||
spot::parse_error_list pe;
|
||||
auto fpos = spot::parse_infix_psl(s, pe);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, s, pe))
|
||||
auto pfpos = spot::parse_infix_psl(s);
|
||||
if (pfpos.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto fpos = pfpos.f;
|
||||
|
||||
auto fneg = spot::formula::Not(fpos);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
// Copyright (C) 2014, 2015, 2016 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -85,11 +85,11 @@ main(int argc, char** argv)
|
|||
if (s.empty() || s[0] == '#') // Skip comments
|
||||
continue;
|
||||
|
||||
spot::parse_error_list pe;
|
||||
auto f = spot::parse_infix_psl(s, pe);
|
||||
auto pf = spot::parse_infix_psl(s);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, s, pe))
|
||||
if (pf.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f = pf.f;
|
||||
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2010, 2011, 2012, 2015 Laboratoire de Recherche et
|
||||
// Dévelopement de l'Epita (LRDE).
|
||||
// Copyright (C) 2010, 2011, 2012, 2015, 2016 Laboratoire de Recherche
|
||||
// et Dévelopement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -58,12 +58,11 @@ main(int argc, char **argv)
|
|||
std::getline(ss, form, ',');
|
||||
ss >> expected;
|
||||
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_sere(form, p1);
|
||||
if (spot::format_parse_errors(std::cerr, form, p1))
|
||||
auto pf1 = spot::parse_infix_sere(form);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
|
||||
bool b = f1.accepts_eword();
|
||||
bool b = pf1.f.accepts_eword();
|
||||
std::cout << form << ',' << b << '\n';
|
||||
if (b != expected)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement de
|
||||
// l'Epita (LRDE).
|
||||
// Copyright (C) 2014, 2015, 2016 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -89,10 +89,10 @@ main(int argc, char** argv)
|
|||
|
||||
int runs = atoi(tokens[0].c_str());
|
||||
|
||||
spot::parse_error_list pe;
|
||||
auto f = spot::parse_infix_psl(tokens[1], pe);
|
||||
if (spot::format_parse_errors(std::cerr, tokens[1], pe))
|
||||
auto pf = spot::parse_infix_psl(tokens[1]);
|
||||
if (pf.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f = pf.f;
|
||||
|
||||
auto d = spot::make_bdd_dict();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015 Laboratoire de
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de
|
||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
|
|
@ -95,21 +95,20 @@ main(int argc, char** argv)
|
|||
return 2;
|
||||
}
|
||||
|
||||
spot::parse_error_list p2;
|
||||
auto f2 = spot::parse_infix_psl(formulas[size - 1], p2);
|
||||
auto pf2 = spot::parse_infix_psl(formulas[size - 1]);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, formulas[size - 1], p2))
|
||||
if (pf2.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f2 = pf2.f;
|
||||
|
||||
for (unsigned n = 0; n < size - 1; ++n)
|
||||
{
|
||||
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_psl(formulas[n], p1);
|
||||
auto pf1 = spot::parse_infix_psl(formulas[n]);
|
||||
|
||||
if (check_first &&
|
||||
spot::format_parse_errors(std::cerr, formulas[n], p1))
|
||||
if (check_first && pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
int exit_code = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -908,11 +908,11 @@ checked_main(int argc, char** argv)
|
|||
case TransTAA:
|
||||
case TransCompo:
|
||||
{
|
||||
spot::parse_error_list pel;
|
||||
tm.start("parsing formula");
|
||||
f = spot::parse_infix_psl(input, pel, env, debug_opt);
|
||||
auto pf = spot::parse_infix_psl(input, env, debug_opt);
|
||||
tm.stop("parsing formula");
|
||||
exit_code = spot::format_parse_errors(std::cerr, input, pel);
|
||||
exit_code = pf.format_errors(std::cerr);
|
||||
f = pf.f;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2010, 2012, 2015 Laboratoire de Recherche et
|
||||
// Copyright (C) 2010, 2012, 2015, 2016 Laboratoire de Recherche et
|
||||
// Developement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -59,9 +59,10 @@ main(int argc, char **argv)
|
|||
std::getline(ss, expected);
|
||||
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_psl(form, p1);
|
||||
if (spot::format_parse_errors(std::cerr, form, p1))
|
||||
auto pf1 = spot::parse_infix_psl(form);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
std::ostringstream so;
|
||||
spot::print_formula_props(so, f1, true);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012, 2015 Laboratoire de Recherche et Developement de
|
||||
// l'Epita (LRDE).
|
||||
// Copyright (C) 2012, 2015, 2016 Laboratoire de Recherche et
|
||||
// Developement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -45,11 +45,10 @@ main(int argc, char **argv)
|
|||
}
|
||||
|
||||
{
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_psl(argv[1], p1);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[1], p1))
|
||||
auto pf1 = spot::parse_infix_psl(argv[1]);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
if (boolone)
|
||||
std::cout << spot::length_boolone(f1) << std::endl;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2012, 2014, 2015 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2012, 2014, 2015, 2016 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de
|
||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
// Université Pierre et Marie Curie.
|
||||
|
|
@ -46,17 +46,15 @@ main(int argc, char** argv)
|
|||
{
|
||||
spot::environment& env(spot::default_environment::instance());
|
||||
|
||||
spot::parse_error_list pel1;
|
||||
auto f1 = spot::parse_infix_psl(argv[1], pel1, env);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[1], pel1))
|
||||
auto pf1 = spot::parse_infix_psl(argv[1], env);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
spot::parse_error_list pel2;
|
||||
auto f2 = spot::parse_infix_psl(argv[2], pel2, env);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[2], pel2))
|
||||
auto pf2 = spot::parse_infix_psl(argv[2], env);
|
||||
if (pf2.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f2 = pf2.f;
|
||||
|
||||
auto dict = spot::make_bdd_dict();
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2013, 2014, 2015 Laboratoire de Recherche et Developement
|
||||
// Copyright (C) 2013, 2014, 2015, 2016 Laboratoire de Recherche et Developement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -38,11 +38,10 @@ main(int argc, char **argv)
|
|||
syntax(argv[0]);
|
||||
|
||||
{
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_psl(argv[1], p1);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[1], p1))
|
||||
auto pf1 = spot::parse_infix_psl(argv[1]);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
spot::relabeling_map* m = new spot::relabeling_map;
|
||||
auto f2 = spot::relabel_bse(f1, spot::Pnn, m);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015 Laboratoire
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016 Laboratoire
|
||||
// de Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris
|
||||
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
|
|
@ -860,15 +860,14 @@ main(int argc, char** argv)
|
|||
break;
|
||||
else if (input == "")
|
||||
break;
|
||||
spot::parse_error_list pel;
|
||||
auto f = spot::parse_infix_psl(input, pel, env);
|
||||
if (spot::format_parse_errors(std::cerr, input, pel))
|
||||
auto pf = spot::parse_infix_psl(input, env);
|
||||
if (pf.format_errors(std::cerr))
|
||||
{
|
||||
exit_code = 1;
|
||||
break;
|
||||
}
|
||||
formula = spot::ltl_to_tgba_fm(f, dict, true);
|
||||
auto* tmp = spot::atomic_prop_collect(f);
|
||||
formula = spot::ltl_to_tgba_fm(pf.f, dict, true);
|
||||
auto* tmp = spot::atomic_prop_collect(pf.f);
|
||||
for (auto i: *tmp)
|
||||
apf->insert(i);
|
||||
delete tmp;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2012, 2015 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2012, 2015, 2016 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6
|
||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||
// Pierre et Marie Curie.
|
||||
|
|
@ -55,12 +55,13 @@ main(int argc, char** argv)
|
|||
|
||||
{
|
||||
spot::environment& env(spot::default_environment::instance());
|
||||
spot::parse_error_list pel;
|
||||
auto f = spot::parse_infix_psl(argv[formula_index], pel, env, debug);
|
||||
|
||||
exit_code =
|
||||
spot::format_parse_errors(std::cerr, argv[formula_index], pel);
|
||||
|
||||
auto f = [&]()
|
||||
{
|
||||
auto pf = spot::parse_infix_psl(argv[formula_index], env, debug);
|
||||
exit_code = pf.format_errors(std::cerr);
|
||||
return pf.f;
|
||||
}();
|
||||
|
||||
if (f)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*_
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015 Laboratoire
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016 Laboratoire
|
||||
// de Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2004, 2006, 2007 Laboratoire d'Informatique de Paris
|
||||
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
|
|
@ -178,17 +178,17 @@ main(int argc, char** argv)
|
|||
}
|
||||
while (input == "");
|
||||
|
||||
spot::parse_error_list p1;
|
||||
f1 = spot::parse_infix_psl(input, p1);
|
||||
if (spot::format_parse_errors(std::cerr, input, p1))
|
||||
auto pf1 = spot::parse_infix_psl(input);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
f1 = pf1.f;
|
||||
}
|
||||
else
|
||||
{
|
||||
spot::parse_error_list p1;
|
||||
f1 = spot::parse_infix_psl(argv[2], p1);
|
||||
if (spot::format_parse_errors(std::cerr, argv[2], p1))
|
||||
auto pf1 = spot::parse_infix_psl(argv[2]);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
f1 = pf1.f;
|
||||
}
|
||||
|
||||
if (argc == 4)
|
||||
|
|
@ -199,10 +199,10 @@ main(int argc, char** argv)
|
|||
exit(2);
|
||||
}
|
||||
|
||||
spot::parse_error_list p2;
|
||||
f2 = spot::parse_infix_psl(argv[3], p2);
|
||||
if (spot::format_parse_errors(std::cerr, argv[3], p2))
|
||||
auto pf2 = spot::parse_infix_psl(argv[3]);
|
||||
if (pf2.format_errors(std::cerr))
|
||||
return 2;
|
||||
f2 = pf2.f;
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -111,13 +111,12 @@ int main(int argc, char* argv[])
|
|||
spot::twa_graph_ptr res;
|
||||
if (in_ltl)
|
||||
{
|
||||
spot::parse_error_list pel;
|
||||
spot::formula f = spot::parse_infix_psl(input, pel);
|
||||
if (spot::format_parse_errors(std::cerr, input, pel))
|
||||
auto pf = spot::parse_infix_psl(input);
|
||||
if (pf.format_errors(std::cerr))
|
||||
return 2;
|
||||
spot::translator trans(dict);
|
||||
trans.set_pref(spot::postprocessor::Deterministic);
|
||||
auto tmp = trans.run(f);
|
||||
auto tmp = trans.run(pf.f);
|
||||
res = spot::tgba_determinize(tmp, pretty_print, scc_opt,
|
||||
use_bisim, use_stutter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016
|
||||
// Laboratoire de Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6
|
||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||
// Pierre et Marie Curie.
|
||||
|
|
@ -45,20 +45,18 @@ main(int argc, char** argv)
|
|||
int exit_return = 0;
|
||||
|
||||
{
|
||||
spot::parse_error_list p1;
|
||||
auto ftmp1 = spot::parse_infix_psl(argv[2], p1);
|
||||
auto ftmp1 = spot::parse_infix_psl(argv[2]);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[2], p1))
|
||||
if (ftmp1.format_errors(std::cerr))
|
||||
return 2;
|
||||
|
||||
spot::parse_error_list p2;
|
||||
auto ftmp2 = spot::parse_infix_psl(argv[3], p2);
|
||||
auto ftmp2 = spot::parse_infix_psl(argv[3]);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[3], p2))
|
||||
if (ftmp2.format_errors(std::cerr))
|
||||
return 2;
|
||||
|
||||
spot::formula f1 = spot::negative_normal_form(ftmp1);
|
||||
spot::formula f2 = spot::negative_normal_form(ftmp2);
|
||||
spot::formula f1 = spot::negative_normal_form(ftmp1.f);
|
||||
spot::formula f2 = spot::negative_normal_form(ftmp2.f);
|
||||
|
||||
std::string f1s = spot::str_psl(f1);
|
||||
std::string f2s = spot::str_psl(f2);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2012, 2015 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2012, 2015, 2016 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
|
|
@ -40,11 +40,10 @@ main(int argc, char **argv)
|
|||
syntax(argv[0]);
|
||||
|
||||
{
|
||||
spot::parse_error_list p1;
|
||||
auto f1 = spot::parse_infix_psl(argv[1], p1);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, argv[1], p1))
|
||||
auto pf1 = spot::parse_infix_psl(argv[1]);
|
||||
if (pf1.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f1 = pf1.f;
|
||||
|
||||
// The string generated from an abstract tree should be parsable
|
||||
// again.
|
||||
|
|
@ -52,10 +51,10 @@ main(int argc, char **argv)
|
|||
std::string f1s = spot::str_psl(f1);
|
||||
std::cout << f1s << '\n';
|
||||
|
||||
auto f2 = spot::parse_infix_psl(f1s, p1);
|
||||
|
||||
if (spot::format_parse_errors(std::cerr, f1s, p1))
|
||||
auto pf2 = spot::parse_infix_psl(f1s);
|
||||
if (pf2.format_errors(std::cerr))
|
||||
return 2;
|
||||
auto f2 = pf2.f;
|
||||
|
||||
// This second abstract tree should be equal to the first.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue