Template ltlast/ & ltlenv/ classes in internal/ & Add ELTL parser.

This commit is contained in:
Damien Lefortier 2008-03-25 16:52:06 +01:00 committed by Damien Lefortier
parent 21c98c0a01
commit 543190f2bc
74 changed files with 4299 additions and 468 deletions

View file

@ -23,7 +23,7 @@
# define SPOT_LTLENV_ENVIRONMENT_HH
# include "ltlast/formula.hh"
# include <string>
# include "internal/environment.hh"
namespace spot
{
@ -31,37 +31,7 @@ namespace spot
{
/// \brief An environment that describes atomic propositions.
/// \ingroup ltl_essential
class environment
{
public:
/// \brief Obtain the formula associated to \a prop_str
///
/// Usually \a prop_str, is the name of an atomic proposition,
/// and spot::ltl::require simply returns the associated
/// spot::ltl::atomic_prop.
///
/// Note this is not a \c const method. Some environments will
/// "create" the atomic proposition when requested.
///
/// We return a spot::ltl::formula instead of an
/// spot::ltl::atomic_prop, because this
/// will allow nifty tricks (e.g., we could name formulae in an
/// environment, and let the parser build a larger tree from
/// these).
///
/// \return 0 iff \a prop_str is not part of the environment,
/// or the associated spot::ltl::formula otherwise.
virtual formula* require(const std::string& prop_str) = 0;
/// Get the name of the environment.
virtual const std::string& name() = 0;
virtual
~environment()
{
}
};
typedef spot::internal::environment<ltl_t> environment;
}
}