Template ltlast/ & ltlenv/ classes in internal/ & Add ELTL parser.
This commit is contained in:
parent
21c98c0a01
commit
543190f2bc
74 changed files with 4299 additions and 468 deletions
|
|
@ -19,17 +19,9 @@
|
|||
## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
## 02111-1307, USA.
|
||||
|
||||
AM_CPPFLAGS = -I$(srcdir)/..
|
||||
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
|
||||
|
||||
ltlenvdir = $(pkgincludedir)/ltlenv
|
||||
|
||||
ltlenv_HEADERS = \
|
||||
declenv.hh \
|
||||
defaultenv.hh \
|
||||
declenv.hh \
|
||||
environment.hh
|
||||
|
||||
noinst_LTLIBRARIES = libltlenv.la
|
||||
libltlenv_la_SOURCES = \
|
||||
declenv.cc \
|
||||
defaultenv.cc
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// Copyright (C) 2008 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
//
|
||||
|
|
@ -23,10 +23,7 @@
|
|||
# define SPOT_LTLENV_DECLENV_HH
|
||||
|
||||
# include "environment.hh"
|
||||
# include <string>
|
||||
# include <map>
|
||||
# include "ltlvisit/destroy.hh"
|
||||
# include "ltlast/atomic_prop.hh"
|
||||
# include "internal/declenv.hh"
|
||||
|
||||
namespace spot
|
||||
{
|
||||
|
|
@ -38,29 +35,9 @@ namespace spot
|
|||
///
|
||||
/// This environment recognizes all atomic propositions
|
||||
/// that have been previously declared. It will reject other.
|
||||
class declarative_environment : public environment
|
||||
{
|
||||
public:
|
||||
declarative_environment();
|
||||
~declarative_environment();
|
||||
typedef spot::internal::declarative_environment<ltl_t>
|
||||
declarative_environment;
|
||||
|
||||
/// Declare an atomic proposition. Return false iff the
|
||||
/// proposition was already declared.
|
||||
bool declare(const std::string& prop_str);
|
||||
|
||||
virtual ltl::formula* require(const std::string& prop_str);
|
||||
|
||||
/// Get the name of the environment.
|
||||
virtual const std::string& name();
|
||||
|
||||
typedef std::map<const std::string, ltl::atomic_prop*> prop_map;
|
||||
|
||||
/// Get the map of atomic proposition known to this environment.
|
||||
const prop_map& get_prop_map() const;
|
||||
|
||||
private:
|
||||
prop_map props_;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// Copyright (C) 2008 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
//
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
# define SPOT_LTLENV_DEFAULTENV_HH
|
||||
|
||||
# include "environment.hh"
|
||||
# include "internal/defaultenv.hh"
|
||||
|
||||
namespace spot
|
||||
{
|
||||
|
|
@ -36,18 +37,7 @@ namespace spot
|
|||
///
|
||||
/// This is a singleton. Use default_environment::instance()
|
||||
/// to obtain the instance.
|
||||
class default_environment : public environment
|
||||
{
|
||||
public:
|
||||
virtual ~default_environment();
|
||||
virtual formula* require(const std::string& prop_str);
|
||||
virtual const std::string& name();
|
||||
|
||||
/// Get the sole instance of spot::ltl::default_environment.
|
||||
static default_environment& instance();
|
||||
protected:
|
||||
default_environment();
|
||||
};
|
||||
typedef spot::internal::default_environment<ltl_t> default_environment;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue