Logo Search packages:      
Sourcecode: lbt version File versions  Download package

void LtlJunct::expand ( class LtlGraphNode node,
std::stack< class LtlGraphNode * > &  to_expand 
) const [virtual]

Implements operator/operand specific details of the expansion algorithm.

Parameters:
node the node representing the formula
to_expand stack of nodes to be expanded

Implements Ltl.

Definition at line 107 of file Ltl.C.

References BitVector::assign_true(), m_con, m_left, LtlGraphNode::m_new, Ltl::m_num, LtlGraphNode::m_old, and m_right.

{
  if (m_con) {
    if (!node.m_old[m_left.m_num])
      node.m_new.assign_true (m_left.m_num);
    if (!node.m_old[m_right.m_num])
      node.m_new.assign_true (m_right.m_num);
  }
  else {
    class BitVector new_set (node.m_new);
    if (!node.m_old[m_left.m_num])
      new_set.assign_true (m_left.m_num);
    if (!node.m_old[m_right.m_num])
      node.m_new.assign_true (m_right.m_num);
    to_expand.push (new class LtlGraphNode (node.m_incoming, new_set,
                                  node.m_old, node.m_atomic,
                                  node.m_next));
  }
}


Generated by  Doxygen 1.6.0   Back to index