spot 2.3.1

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Classes | Public Member Functions | Static Public Member Functions | List of all members
spot::fnode Class Referencefinal

Actual storage for formula nodes. More...

`#include <spot/tl/formula.hh>`

Collaboration diagram for spot::fnode:

## Public Member Functions
const fnode * | clone () const
| Clone an fnode. More...
void | destroy () const
| Dereference an fnode. More...
op | kind () const
std::string | kindstr () const
bool | is (op o) const
bool | is (op o1, op o2) const
bool | is (std::initializer_list< op > l) const
const fnode * | get_child_of (op o) const
const fnode * | get_child_of (std::initializer_list< op > l) const
unsigned | min () const
unsigned | max () const
unsigned | size () const
size_t | id () const
const fnode *const * | begin () const
const fnode *const * | end () const
const fnode * | nth (unsigned i) const
bool | is_ff () const
bool | is_tt () const
bool | is_eword () const
bool | is_constant () const
bool | is_Kleene_star () const
const std::string & | ap_name () const
std::ostream & | dump (std::ostream &os) const
const fnode * | all_but (unsigned i) const
unsigned | boolean_count () const
const fnode * | boolean_operands (unsigned *width=nullptr) const
bool | is_boolean () const
bool | is_sugar_free_boolean () const
bool | is_in_nenoform () const
bool | is_syntactic_stutter_invariant () const
bool | is_sugar_free_ltl () const
bool | is_ltl_formula () const
bool | is_psl_formula () const
bool | is_sere_formula () const
bool | is_finite () const
bool | is_eventual () const
bool | is_universal () const
bool | is_syntactic_safety () const
bool | is_syntactic_guarantee () const
bool | is_syntactic_obligation () const
bool | is_syntactic_recurrence () const
bool | is_syntactic_persistence () const
bool | is_marked () const
bool | accepts_eword () const
bool | has_lbt_atomic_props () const
bool | has_spin_atomic_props () const

## Static Public Member Functions
static constexpr uint8_t | unbounded ()
static const fnode * | ap (const std::string &name)
static const fnode * | unop (op o, const fnode *f)
static const fnode * | binop (op o, const fnode *f, const fnode *g)
static const fnode * | multop (op o, std::vector< const fnode * > l)
static const fnode * | bunop (op o, const fnode *f, uint8_t min, uint8_t max=unbounded())
static const fnode * | ff ()
static const fnode * | tt ()
static const fnode * | eword ()
static const fnode * | one_star ()
static bool | instances_check ()
| safety check for the reference counters More...

## Detailed Description

Actual storage for formula nodes.

spot::formula objects contain references to instances of this class, and delegate most of their methods. Because spot::formula is meant to be the public interface, most of the methods are documented there, rather than here.

## Member Function Documentation

bool spot::fnode::accepts_eword | ( |  | ) | const
| inline

See also
  formula::accepts_eword

const fnode* spot::fnode::all_but | ( | unsigned | i | ) | const

See also
  formula::all_but

static const fnode* spot::fnode::ap | ( | const std::string & | name | ) |
| static

See also
  formula::ap

Referenced by spot::formula::ap().

const std::string& spot::fnode::ap_name | ( |  | ) | const

See also
  formula::ap_name

const fnode* const* spot::fnode::begin | ( |  | ) | const
| inline

See also
  formula::begin

static const fnode* spot::fnode::binop | ( | op | o,
|  | const fnode * | f,
|  | const fnode * | g
| ) |  |
| static

See also
  formula::binop

Referenced by spot::formula::binop().

unsigned spot::fnode::boolean_count | ( |  | ) | const
| inline

See also
  formula::boolean_count

const fnode* spot::fnode::boolean_operands | ( | unsigned * | width = `nullptr` | ) | const

See also
  formula::boolean_operands

static const fnode* spot::fnode::bunop | ( | op | o,
|  | const fnode * | f,
|  | uint8_t | min,
|  | uint8_t | max = `unbounded()`
| ) |  |
| static

See also
  formula::bunop

Referenced by spot::formula::bunop().

const fnode* spot::fnode::clone | ( |  | ) | const
| inline

Clone an fnode.

This simply increment the reference counter. If the counter saturates, the fnode will stay permanently allocated.

Referenced by spot::formula::binop(), spot::formula::bunop(), spot::formula::multop(), and spot::formula::unop().

void spot::fnode::destroy | ( |  | ) | const
| inline

Dereference an fnode.

This decrement the reference counter (unless the counter is saturated), and actually deallocate the fnode when the counder reaches 0 (unless the fnode denotes a constant).

std::ostream& spot::fnode::dump | ( | std::ostream & | os | ) | const

See also
  formula::dump

const fnode* const* spot::fnode::end | ( |  | ) | const
| inline

See also
  formula::end

static const fnode* spot::fnode::eword | ( |  | ) |
| inline static

See also
  formula::eword

Referenced by spot::formula::eword().

static const fnode* spot::fnode::ff | ( |  | ) |
| inline static

See also
  formula::ff

Referenced by spot::formula::ff().

const fnode* spot::fnode::get_child_of | ( | op | o | ) | const
| inline

See also
  formula::get_child_of

Referenced by get_child_of().

const fnode* spot::fnode::get_child_of | ( | std::initializer_list< op > | l | ) | const
| inline

See also
  formula::get_child_of

References get_child_of().

bool spot::fnode::has_lbt_atomic_props | ( |  | ) | const
| inline

See also
  formula::has_lbt_atomic_props

bool spot::fnode::has_spin_atomic_props | ( |  | ) | const
| inline

See also
  formula::has_spin_atomic_props

size_t spot::fnode::id | ( |  | ) | const
| inline

See also
  formula::id

static bool spot::fnode::instances_check | ( |  | ) |
| static

safety check for the reference counters

Returns
  true iff the unicity map contains only the globally pre-allocated formulas.

This is meant to be used as

assert(spot::fnode::instances_check());

at the end of a program.

bool spot::fnode::is | ( | op | o | ) | const
| inline

See also
  formula::is

Referenced by is().

bool spot::fnode::is | ( | op | o1,
|  | op | o2
| ) |  | const
| inline

See also
  formula::is

bool spot::fnode::is | ( | std::initializer_list< op > | l | ) | const
| inline

See also
  formula::is

References is(), and nth().

bool spot::fnode::is_boolean | ( |  | ) | const
| inline

See also
  formula::is_boolean

bool spot::fnode::is_constant | ( |  | ) | const
| inline

See also
  formula::is_constant

References spot::eword, spot::ff, and spot::tt.

bool spot::fnode::is_eventual | ( |  | ) | const
| inline

See also
  formula::is_eventual

bool spot::fnode::is_eword | ( |  | ) | const
| inline

See also
  formula::is_eword

References spot::eword.

bool spot::fnode::is_ff | ( |  | ) | const
| inline

See also
  formula::is_ff

References spot::ff.

bool spot::fnode::is_finite | ( |  | ) | const
| inline

See also
  formula::is_finite

bool spot::fnode::is_in_nenoform | ( |  | ) | const
| inline

See also
  formula::is_in_nenoform

bool spot::fnode::is_Kleene_star | ( |  | ) | const
| inline

See also
  formula::is_Kleene_star

References spot::Star.

bool spot::fnode::is_ltl_formula | ( |  | ) | const
| inline

See also
  formula::is_ltl_formula

bool spot::fnode::is_marked | ( |  | ) | const
| inline

See also
  formula::is_marked

bool spot::fnode::is_psl_formula | ( |  | ) | const
| inline

See also
  formula::is_psl_formula

bool spot::fnode::is_sere_formula | ( |  | ) | const
| inline

See also
  formula::is_sere_formula

bool spot::fnode::is_sugar_free_boolean | ( |  | ) | const
| inline

See also
  formula::is_sugar_free_boolean

bool spot::fnode::is_sugar_free_ltl | ( |  | ) | const
| inline

See also
  formula::is_sugar_free_ltl

bool spot::fnode::is_syntactic_guarantee | ( |  | ) | const
| inline

See also
  formula::is_syntactic_guarantee

bool spot::fnode::is_syntactic_obligation | ( |  | ) | const
| inline

See also
  formula::is_syntactic_obligation

bool spot::fnode::is_syntactic_persistence | ( |  | ) | const
| inline

See also
  formula::is_syntactic_persistence

bool spot::fnode::is_syntactic_recurrence | ( |  | ) | const
| inline

See also
  formula::is_syntactic_recurrence

bool spot::fnode::is_syntactic_safety | ( |  | ) | const
| inline

See also
  formula::is_syntactic_safety

bool spot::fnode::is_syntactic_stutter_invariant | ( |  | ) | const
| inline

See also
  formula::is_syntactic_stutter_invariant

bool spot::fnode::is_tt | ( |  | ) | const
| inline

See also
  formula::is_tt

References spot::tt.

bool spot::fnode::is_universal | ( |  | ) | const
| inline

See also
  formula::is_universal

op spot::fnode::kind | ( |  | ) | const
| inline

See also
  formula::kind

std::string spot::fnode::kindstr | ( |  | ) | const

See also
  formula::kindstr

unsigned spot::fnode::max | ( |  | ) | const
| inline

See also
  formula::max

References spot::FStar, and spot::Star.

unsigned spot::fnode::min | ( |  | ) | const
| inline

See also
  formula::min

References spot::FStar, and spot::Star.

static const fnode* spot::fnode::multop | ( | op | o,
|  | std::vector< const fnode * > | l
| ) |  |
| static

See also
  formula::multop

Referenced by spot::formula::multop().

const fnode* spot::fnode::nth | ( | unsigned | i | ) | const
| inline

See also
  formula::nth

Referenced by is().

static const fnode* spot::fnode::one_star | ( |  | ) |
| inline static

See also
  formula::one_star

References spot::Star, and spot::tt.

Referenced by spot::formula::one_star().

unsigned spot::fnode::size | ( |  | ) | const
| inline

See also
  formula::size

static const fnode* spot::fnode::tt | ( |  | ) |
| inline static

See also
  formula::tt

Referenced by spot::formula::tt().

static constexpr uint8_t spot::fnode::unbounded | ( |  | ) |
| inline static

See also
  formula::unbounded

Referenced by spot::formula::unbounded().

static const fnode* spot::fnode::unop | ( | op | o,
|  | const fnode * | f
| ) |  |
| static

See also
  formula::unop

Referenced by spot::formula::unop().

The documentation for this class was generated from the following file:

- spot/tl/formula.hh

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.