Commit f17af7a7 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

* src/ltlvisit/formlength.cc: Rename as ...

* src/ltlvisit/length.cc: ... this.
* src/ltlvisit/length.hh: New file, extracted from ...
* src/ltlvisit/reducform.hh: ... here.
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS): Add length.hh.
(libltlvisit_la_SOURCES): Rename formlength.cc as length.cc.
* src/ltltest/reduc.cc: Include length.hh.
parent e0ec45ed
2004-05-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
* src/ltlvisit/formlength.cc: Rename as ...
* src/ltlvisit/length.cc: ... this.
* src/ltlvisit/length.hh: New file, extracted from ...
* src/ltlvisit/reducform.hh: ... here.
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS): Add length.hh.
(libltlvisit_la_SOURCES): Rename formlength.cc as length.cc.
* src/ltltest/reduc.cc: Include length.hh.
* src/ltlvisit/formlength.cc (length_form_vistor): Rename as ..
(length_visitor): ... this.
(form_length): Rename as ...
......
......@@ -29,6 +29,7 @@
#include "ltlvisit/destroy.hh"
#include "ltlvisit/tostring.hh"
#include "ltlvisit/reducform.hh"
#include "ltlvisit/length.hh"
#include "ltlast/allnodes.hh"
void
......
......@@ -29,25 +29,26 @@ ltlvisit_HEADERS = \
destroy.hh \
dotty.hh \
dump.hh \
tostring.hh \
length.hh \
lunabbrev.hh \
nenoform.hh \
postfix.hh \
tunabbrev.hh \
reducform.hh
reducform.hh \
tostring.hh \
tunabbrev.hh
noinst_LTLIBRARIES = libltlvisit.la
libltlvisit_la_SOURCES = \
basereduc.cc \
clone.cc \
destroy.cc \
dotty.cc \
dump.cc \
tostring.cc \
forminf.cc \
length.cc \
lunabbrev.cc \
nenoform.cc \
postfix.cc \
tunabbrev.cc \
reducform.cc \
basereduc.cc \
forminf.cc \
formlength.cc
\ No newline at end of file
tostring.cc \
tunabbrev.cc
......@@ -19,77 +19,22 @@
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
#include "reducform.hh"
#include "ltlast/allnodes.hh"
#ifndef SPOT_LTLVISIT_LENGTH_HH
# define SPOT_LTLVISIT_LENGTH_HH
#include "ltlast/formula.hh"
namespace spot
{
namespace ltl
{
class length_visitor : public const_visitor
{
public:
length_visitor()
{
result_ = 0;
}
virtual
~length_visitor()
{
}
int
result() const
{
return result_;
}
void
visit(const atomic_prop*)
{
result_ = 1;
}
void
visit(const constant*)
{
result_ = 1;
}
void
visit(const unop* uo)
{
result_ = 1 + length(uo->child());
}
void
visit(const binop* bo)
{
result_ = 1 + length(bo->first()) + length(bo->second());
}
void
visit(const multop* mo)
{
unsigned mos = mo->size();
for (unsigned i = 0; i < mos; ++i)
result_ += length(mo->nth(i));
}
protected:
int result_; // size of the formula
};
int
length(const formula* f)
{
length_visitor v;
const_cast<formula*>(f)->accept(v);
return v.result();
}
/// \brief Compute the length of a formula.
///
/// The length of a formula is the number of atomic properties,
/// constants, and operators (logical and temporal) occurring in
/// the formula.
int length(const formula* f);
}
}
#endif // SPOT_LTLVISIT_LENGTH_HH
......@@ -74,9 +74,6 @@ namespace spot
/// FIXME: Describe what universal formulae are. Cite paper.
bool is_universal(const formula* f);
/// Length of a formula.
int length(const formula* f);
/// Type the first node of a formula.
class node_type_form_visitor : public const_visitor
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment