Replace the constant_term visitor by a flag in the formulae.

* src/ltlast/formula.hh (formula::accepts_eword): New method.
(formula::is.accepting_eword): New flag.
* src/ltlast/formula.cc (print_formula_props): Display the new
property.
* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
src/ltlast/multop.cc, src/ltlast/unop.cc: Update
is.accepting_eword as appropriate.
* src/ltltest/consterm.cc, src/tgbaalgos/ltl2tgba_fm.cc: Adjust to
use accepts_eword().
* src/ltlvisit/consterm.cc, src/ltlvisit/consterm.hh: Delete.
* src/ltlvisit/Makefile.am: Remove these files.
This commit is contained in:
Alexandre Duret-Lutz 2010-12-09 10:15:19 +01:00
parent 546260e7a0
commit 48cde88b9b
14 changed files with 73 additions and 268 deletions

View file

@ -211,6 +211,12 @@ namespace spot
return !is.not_marked;
}
/// Whether the formula accepts [*0].
bool accepts_eword() const
{
return is.accepting_eword;
}
/// The properties as a field of bits. For internal use.
unsigned get_props() const
{
@ -252,7 +258,7 @@ namespace spot
// "the formula is".
bool boolean:1; // No temporal operators.
bool sugar_free_boolean:1; // Only AND, OR, and NOT operators.
bool in_nenoform:1; // Negative Normal Form
bool in_nenoform:1; // Negative Normal Form.
bool X_free:1; // No X operators.
bool sugar_free_ltl:1; // No F and G operators.
bool ltl_formula:1; // Only LTL operators.
@ -260,7 +266,8 @@ namespace spot
bool psl_formula:1; // Only PSL operators.
bool eventual:1; // Purely eventual formula.
bool universal:1; // Purely universal formula.
bool not_marked:1; // No occurrence of EConcatMarked
bool not_marked:1; // No occurrence of EConcatMarked.
bool accepting_eword:1; // Accepts the empty word.
};
union
{