* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
src/ltlast/constant.hh, src/ltlast/formula.hh, src/ltlast/multop.hh, src/ltlast/refformula.hh, src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh, src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh, src/ltlparse/public.hh, src/ltlvisit/apcollect.hh, src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh, src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh, src/ltlvisit/length.hh, src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen groups for LTL algorithms and types. * doc/Makefile.am (fast-doc): New target.
This commit is contained in:
parent
8c6dff00b6
commit
36aadba740
29 changed files with 121 additions and 20 deletions
14
ChangeLog
14
ChangeLog
|
|
@ -1,5 +1,19 @@
|
|||
2004-11-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||
|
||||
* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
|
||||
src/ltlast/constant.hh, src/ltlast/formula.hh,
|
||||
src/ltlast/multop.hh, src/ltlast/refformula.hh,
|
||||
src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
|
||||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
|
||||
src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
|
||||
src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh,
|
||||
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
|
||||
src/ltlvisit/dump.hh, src/ltlvisit/length.hh,
|
||||
src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen
|
||||
groups for LTL algorithms and types.
|
||||
* doc/Makefile.am (fast-doc): New target.
|
||||
|
||||
|
||||
* src/misc/hashfunc.hh: Include cstddef to define size_t, and guard
|
||||
the file for multiple inclusions.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
DOXYGEN = doxygen
|
||||
|
||||
.PHONY: doc spot
|
||||
.PHONY: doc fast-doc
|
||||
|
||||
all-local: $(srcdir)/stamp
|
||||
|
||||
|
|
@ -29,6 +29,11 @@ doc:
|
|||
rm -f $(srcdir)/stamp
|
||||
$(MAKE) $(srcdir)/stamp
|
||||
|
||||
fast-doc:
|
||||
$(MAKE) Doxyfile
|
||||
$(DOXYGEN)
|
||||
touch $(srcdir)/stamp
|
||||
|
||||
$(srcdir)/stamp: $(srcdir)/Doxyfile.in $(top_srcdir)/configure.ac
|
||||
$(MAKE) Doxyfile
|
||||
rm -rf spot.html spot.latex
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
|
||||
/// Atomic propositions.
|
||||
/// \brief Atomic propositions.
|
||||
/// \ingroup ltl_ast
|
||||
class atomic_prop : public ref_formula
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
|
||||
/// Binary operator.
|
||||
/// \brief Binary operator.
|
||||
/// \ingroup ltl_ast
|
||||
class binop : public ref_formula
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -31,7 +31,8 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
|
||||
/// A constant (True or False)
|
||||
/// \brief A constant (True or False)
|
||||
/// \ingroup ltl_ast
|
||||
class constant : public formula
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -30,8 +30,39 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
/// \defgroup ltl LTL formulae
|
||||
///
|
||||
/// This module gathers types and definitions related to LTL formulae.
|
||||
|
||||
/// \addtogroup ltl_essential Essential LTL types
|
||||
/// \ingroup ltl
|
||||
|
||||
/// \addtogroup ltl_ast LTL Abstract Syntax Tree
|
||||
/// \ingroup ltl
|
||||
|
||||
/// \addtogroup ltl_environment LTL environments
|
||||
/// \ingroup ltl
|
||||
/// LTL environment implementations.
|
||||
|
||||
/// \addtogroup ltl_algorithm Algorithms for LTL formulae
|
||||
/// \ingroup ltl
|
||||
|
||||
/// \addtogroup ltl_io Input/Output of LTL formulae
|
||||
/// \ingroup ltl_algorithm
|
||||
|
||||
/// \addtogroup ltl_visitor Derivable visitors
|
||||
/// \ingroup ltl_algorithm
|
||||
|
||||
/// \addtogroup ltl_rewriting Rewriting LTL formulae
|
||||
/// \ingroup ltl_algorithm
|
||||
|
||||
/// \addtogroup ltl_misc Miscellaneous algorithms for LTL formulae
|
||||
/// \ingroup ltl_algorithm
|
||||
|
||||
|
||||
/// \brief An LTL formula.
|
||||
/// \ingroup ltl_essential
|
||||
/// \ingroup ltl_ast
|
||||
///
|
||||
/// The only way you can work with a formula is to
|
||||
/// build a spot::ltl::visitor or spot::ltl::const_visitor.
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ namespace spot
|
|||
{
|
||||
|
||||
/// \brief Multi-operand operators.
|
||||
/// \ingroup ltl_ast
|
||||
///
|
||||
/// These operators are considered commutative and associative.
|
||||
class multop : public ref_formula
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ namespace spot
|
|||
{
|
||||
|
||||
/// \brief A reference-counted LTL formula.
|
||||
/// \ingroup ltl_ast
|
||||
class ref_formula : public formula
|
||||
{
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
|
||||
/// Unary operator.
|
||||
/// \brief Unary operators.
|
||||
/// \ingroup ltl_ast
|
||||
class unop : public ref_formula
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Formula visitor that can modify the formula.
|
||||
/// \ingroup ltl_essential
|
||||
///
|
||||
/// Writing visitors is the prefered way
|
||||
/// to traverse a formula, since it doesn't
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ namespace spot
|
|||
{
|
||||
|
||||
/// \brief A declarative environment.
|
||||
/// \ingroup ltl_environment
|
||||
///
|
||||
/// This environment recognizes all atomic propositions
|
||||
/// that have been previously declared. It will reject other.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
{
|
||||
|
||||
/// \brief A laxist environment.
|
||||
/// \ingroup ltl_environment
|
||||
///
|
||||
/// This environment recognizes all atomic propositions.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -29,8 +29,8 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
|
||||
/// An environment that describes atomic propositions.
|
||||
/// \brief An environment that describes atomic propositions.
|
||||
/// \ingroup ltl_essential
|
||||
class environment
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
/// \addtogroup ltl_io
|
||||
/// @{
|
||||
|
||||
/// \brief A parse diagnostic with its location.
|
||||
typedef std::pair<yy::Location, std::string> parse_error;
|
||||
/// \brief A list of parser diagnostics, as filled by parse.
|
||||
|
|
@ -69,6 +72,8 @@ namespace spot
|
|||
bool format_parse_errors(std::ostream& os,
|
||||
const std::string& ltl_string,
|
||||
parse_error_list& error_list);
|
||||
|
||||
/// @}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
/// \addtogroup ltl_misc
|
||||
/// @{
|
||||
|
||||
/// Set of atomic propositions.
|
||||
typedef std::set<spot::ltl::atomic_prop*> atomic_prop_set;
|
||||
|
||||
|
|
@ -42,6 +45,8 @@ namespace spot
|
|||
/// set containing all these atomic propositions if \c s is 0.
|
||||
atomic_prop_set*
|
||||
atomic_prop_collect(const formula* f, atomic_prop_set* s = 0);
|
||||
|
||||
/// @}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -28,12 +28,15 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
/// Basic rewritings.
|
||||
/// \brief Basic rewritings.
|
||||
/// \ingroup ltl_rewriting
|
||||
formula* basic_reduce(const formula* f);
|
||||
|
||||
/// Whether a formula starts with GF.
|
||||
/// \brief Whether a formula starts with GF.
|
||||
/// \ingroup ltl_misc
|
||||
bool is_GF(const formula* f);
|
||||
/// Whether a formula starts with FG.
|
||||
/// \brief Whether a formula starts with FG.
|
||||
/// \ingroup ltl_misc
|
||||
bool is_FG(const formula* f);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Clone a formula.
|
||||
/// \ingroup ltl_visitor
|
||||
///
|
||||
/// This visitor is public, because it's convenient
|
||||
/// to derive from it and override part of its methods.
|
||||
|
|
@ -56,6 +57,7 @@ namespace spot
|
|||
};
|
||||
|
||||
/// \brief Clone a formula.
|
||||
/// \ingroup ltl_essential
|
||||
formula* clone(const formula* f);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -29,6 +29,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Destroys a formula
|
||||
/// \ingroup ltl_essential
|
||||
void destroy(const formula *f);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Write a formula tree using dot's syntax.
|
||||
/// \ingroup ltl_io
|
||||
/// \param os The stream where it should be output.
|
||||
/// \param f The formula to translate.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Dump a formula tree.
|
||||
/// \ingroup ltl_io
|
||||
/// \param os The stream where it should be output.
|
||||
/// \param f The formula to dump.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Compute the length of a formula.
|
||||
/// \ingroup ltl_misc
|
||||
///
|
||||
/// The length of a formula is the number of atomic properties,
|
||||
/// constants, and operators (logical and temporal) occurring in
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
{
|
||||
/// \brief Clone and rewrite a formula to remove most of the
|
||||
/// abbreviated logical operators.
|
||||
/// \ingroup ltl_visitor
|
||||
///
|
||||
/// This will rewrite binary operators such as binop::Implies,
|
||||
/// binop::Equals, and binop::Xor, using only unop::Not, multop::Or,
|
||||
|
|
@ -54,6 +55,7 @@ namespace spot
|
|||
|
||||
/// \brief Clone and rewrite a formula to remove most of the abbreviated
|
||||
/// logical operators.
|
||||
/// \ingroup ltl_rewriting
|
||||
///
|
||||
/// This will rewrite binary operators such as binop::Implies,
|
||||
/// binop::Equals, and binop::Xor, using only unop::Not, multop::Or,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
/// \brief Build the negative normal form of \a f.
|
||||
/// \ingroup ltl_rewriting
|
||||
///
|
||||
/// All negations of the formula are pushed in front of the
|
||||
/// atomic propositions.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -31,6 +31,7 @@ namespace spot
|
|||
{
|
||||
/// \brief Apply an algorithm on each node of an AST,
|
||||
/// during a postfix traversal.
|
||||
/// \ingroup ltl_visitor
|
||||
///
|
||||
/// Override one or more of the postifix_visitor::doit methods
|
||||
/// with the algorithm to apply.
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ namespace spot
|
|||
namespace ltl
|
||||
{
|
||||
|
||||
/// \addtogroup ltl_rewriting
|
||||
/// @{
|
||||
|
||||
/// Options for spot::ltl::reduce.
|
||||
enum reduce_options
|
||||
{
|
||||
|
|
@ -52,8 +55,10 @@ namespace spot
|
|||
/// which optimizations to apply.
|
||||
/// \return the reduced formula
|
||||
formula* reduce(const formula* f, int opt = Reduce_All);
|
||||
/// @}
|
||||
|
||||
/// \brief Check whether a formula is a pure eventuality.
|
||||
/// \ingroup ltl_misc
|
||||
///
|
||||
/// Pure eventuality formulae are defined in
|
||||
/// \verbatim
|
||||
|
|
@ -76,6 +81,7 @@ namespace spot
|
|||
bool is_eventual(const formula* f);
|
||||
|
||||
/// \brief Check whether a formula is purely universal.
|
||||
/// \ingroup ltl_misc
|
||||
///
|
||||
/// Purely universal formulae are defined in
|
||||
/// \verbatim
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ namespace spot
|
|||
{
|
||||
/// \brief Replace <code>true U f</code> and <code>false R g</code> by
|
||||
/// <code>F f</code> and <code>G g</code>.
|
||||
/// \ingroup ltl_visitor
|
||||
class simplify_f_g_visitor : public clone_visitor
|
||||
{
|
||||
typedef clone_visitor super;
|
||||
|
|
@ -45,6 +46,7 @@ namespace spot
|
|||
|
||||
/// \brief Replace <code>true U f</code> and <code>false R g</code> by
|
||||
/// <code>F f</code> and <code>G g</code>.
|
||||
/// \ingroup ltl_rewriting
|
||||
formula* simplify_f_g(const formula* f);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
/// \ingroup ltl_misc
|
||||
///
|
||||
/// This comes from
|
||||
/// \verbatim
|
||||
/// @InProceedings{ somenzi.00.cav,
|
||||
|
|
@ -42,14 +46,15 @@ namespace spot
|
|||
/// publisher = {Springer-Verlag}
|
||||
/// }
|
||||
/// \endverbatim
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
bool syntactic_implication(const formula* f1, const formula* f2);
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
/// \ingroup ltl_misc
|
||||
///
|
||||
/// If right==false, true if !f1 < f2, false otherwise.
|
||||
/// If right==true, true if f1 < !f2, false otherwise.
|
||||
///
|
||||
/// \see syntactic_implication
|
||||
bool syntactic_implication_neg(const formula* f1, const formula* f2,
|
||||
bool right);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ namespace spot
|
|||
{
|
||||
namespace ltl
|
||||
{
|
||||
/// \addtogroup ltl_io
|
||||
/// @{
|
||||
|
||||
/// \brief Output a formula as a (parsable) string.
|
||||
/// \param f The formula to translate.
|
||||
/// \param os The stream where it should be output.
|
||||
|
|
@ -46,6 +49,8 @@ namespace spot
|
|||
/// \brief Convert a formula into a (parsable by Spin) string.
|
||||
/// \param f The formula to translate.
|
||||
std::string to_spin_string(const formula* f);
|
||||
|
||||
/// @}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// 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.
|
||||
//
|
||||
|
|
@ -31,6 +31,7 @@ namespace spot
|
|||
{
|
||||
/// \brief Clone and rewrite a formula to remove most of the
|
||||
/// abbreviated LTL and logical operators.
|
||||
/// \ingroup ltl_visitor
|
||||
///
|
||||
/// The rewriting performed on logical operator is
|
||||
/// the same as the one done by spot::ltl::unabbreviate_logic_visitor.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue