Add support for ELTL (AST & parser), and an adaptation of LaCIM
for ELTL. This is a new version of the work started in 2008 with LTL and ELTL formulae now sharing the same class hierarchy. * configure.ac: Adjust for src/eltlparse/ and src/eltltest/ directories, and call AX_BOOST_BASE. * m4/boost.m4: New file defining AX_BOOST_BASE([MINIMUM-VERSION]). * src/Makefile.am: Add eltlparse and eltltest. * src/eltlparse/: New directory. Contains the ELTL parser. * src/eltltest/: New directory. Contains tests related to ELTL (parser and AST). * src/ltlast/Makefile.am: Adjust for ELTL AST files. * src/ltlast/automatop.cc, src/ltlast/automatop.hh: New files. Represent automaton operators nodes used in ELTL ASTs. * src/ltlast/nfa.cc, src/ltlast/nfa.hh: New files. Represent simple NFAs used internally by automatop nodes. * src/ltlast/allnode.hh, src/ltlast/predecl.hh, src/ltlast/visitor.hh: Adjust for automatop. * src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh, src/ltlvisit/contain.cc, src/ltlvisit/dotty.cc, src/ltlvisit/nenoform.cc, src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh, src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc: Because LTL and ELTL formulae share the same class hierarchy, LTL visitors need to handle automatop nodes to compile. When it's meaningful the visitor applies on automatop nodes or simply assert(0) otherwise. * src/tgba/tgbabddconcretefactory.cc (create_anonymous_state), src/tgba/tgbabddconcretefactory.hh (create_anonymous_state): New function used by the LaCIM translation algorithm for ELTL. * src/tgbaalgos/Makefile.am: Adjust for eltl2tgba_lacim* files. * src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/eltl2tgba_lacim.hh: New files. Implementation of the LaCIM translation algorithm for ELTL. * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Handle automatop nodes in the translation by an assert(0). * src/tgbatest/Makefile.am: Adjust for eltl2tgba.* files. * src/src/tgbatest/eltl2tgba.cc, src/tgbatest/eltl2tgba.test: New files
This commit is contained in:
parent
90332d8d77
commit
2fbcd7e52f
46 changed files with 2509 additions and 3 deletions
|
|
@ -111,6 +111,12 @@ namespace spot
|
|||
assert(0);
|
||||
}
|
||||
|
||||
virtual void
|
||||
visit(const automatop*)
|
||||
{
|
||||
assert(!"unsupported operator");
|
||||
}
|
||||
|
||||
virtual void
|
||||
visit(const multop* node)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,6 +47,18 @@ namespace spot
|
|||
return num;
|
||||
}
|
||||
|
||||
int
|
||||
tgba_bdd_concrete_factory::create_anonymous_state()
|
||||
{
|
||||
int num = get_dict()->register_anonymous_variables(2, this);
|
||||
bdd_setpair(get_dict()->next_to_now, num + 1, num);
|
||||
bdd_setpair(get_dict()->now_to_next, num, num + 1);
|
||||
// Keep track of all "Now" variables for easy
|
||||
// existential quantification.
|
||||
data_.declare_now_next (bdd_ithvar(num), bdd_ithvar(num + 1));
|
||||
return num;
|
||||
}
|
||||
|
||||
int
|
||||
tgba_bdd_concrete_factory::create_atomic_prop(const ltl::formula* f)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,6 +47,12 @@ namespace spot
|
|||
/// Variable numbers can be turned into BDD using ithvar().
|
||||
int create_state(const ltl::formula* f);
|
||||
|
||||
/// Create a anonymous Now/Next variables.
|
||||
///
|
||||
/// \return The BDD variable number v for the Now state. The
|
||||
/// Next BDD corresponds to v+1.
|
||||
int create_anonymous_state();
|
||||
|
||||
/// Create an atomic proposition variable for formula \a f.
|
||||
///
|
||||
/// \param f The formula to create an aotmic proposition for.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue