#include <logic_program_types.h>
Classes | |
struct | Call |
Public Member Functions | |
SccChecker (LogicProgram &prg, AtomList &sccAtoms, uint32 startScc) | |
uint32 | sccs () const |
void | visit (PrgBody *body) |
void | visit (PrgAtom *atom) |
void | visit (PrgDisj *disj) |
Private Types | |
typedef PodVector< Call >::type | CallStack |
typedef PodVector< uintp >::type | NodeStack |
Private Member Functions | |
void | addCall (PrgNode *n, NodeType t, uint32 next, uint32 min=0) |
bool | doVisit (PrgNode *n, bool seen=true) const |
bool | onNode (PrgNode *n, NodeType t, Call &c, uint32 data) |
bool | recurse (Call &c) |
void | visitDfs (PrgNode *n, NodeType t) |
Static Private Member Functions | |
static bool | isNode (uintp n, NodeType t) |
static uintp | packNode (PrgNode *n, NodeType t) |
static PrgNode * | unpackNode (uintp n) |
Private Attributes | |
CallStack | callStack_ |
uint32 | count_ |
NodeStack | nodeStack_ |
LogicProgram * | prg_ |
AtomList * | sccAtoms_ |
uint32 | sccs_ |
Definition at line 675 of file logic_program_types.h.
typedef PodVector<Call>::type Clasp::Asp::SccChecker::CallStack [private] |
Definition at line 688 of file logic_program_types.h.
typedef PodVector<uintp>::type Clasp::Asp::SccChecker::NodeStack [private] |
Definition at line 689 of file logic_program_types.h.
Clasp::Asp::SccChecker::SccChecker | ( | LogicProgram & | prg, |
AtomList & | sccAtoms, | ||
uint32 | startScc | ||
) |
Definition at line 396 of file logic_program_types.cpp.
void Clasp::Asp::SccChecker::addCall | ( | PrgNode * | n, |
NodeType | t, | ||
uint32 | next, | ||
uint32 | min = 0 |
||
) | [inline, private] |
Definition at line 697 of file logic_program_types.h.
bool Clasp::Asp::SccChecker::doVisit | ( | PrgNode * | n, |
bool | seen = true |
||
) | const [inline, private] |
Definition at line 693 of file logic_program_types.h.
static bool Clasp::Asp::SccChecker::isNode | ( | uintp | n, |
NodeType | t | ||
) | [inline, static, private] |
Definition at line 692 of file logic_program_types.h.
bool Clasp::Asp::SccChecker::onNode | ( | PrgNode * | n, |
NodeType | t, | ||
Call & | c, | ||
uint32 | data | ||
) | [private] |
Definition at line 487 of file logic_program_types.cpp.
static uintp Clasp::Asp::SccChecker::packNode | ( | PrgNode * | n, |
NodeType | t | ||
) | [inline, static, private] |
Definition at line 690 of file logic_program_types.h.
bool Clasp::Asp::SccChecker::recurse | ( | Call & | c | ) | [private] |
Definition at line 447 of file logic_program_types.cpp.
uint32 Clasp::Asp::SccChecker::sccs | ( | ) | const [inline] |
Definition at line 678 of file logic_program_types.h.
static PrgNode* Clasp::Asp::SccChecker::unpackNode | ( | uintp | n | ) | [inline, static, private] |
Definition at line 691 of file logic_program_types.h.
void Clasp::Asp::SccChecker::visit | ( | PrgBody * | body | ) | [inline] |
Definition at line 679 of file logic_program_types.h.
void Clasp::Asp::SccChecker::visit | ( | PrgAtom * | atom | ) | [inline] |
Definition at line 680 of file logic_program_types.h.
void Clasp::Asp::SccChecker::visit | ( | PrgDisj * | disj | ) | [inline] |
Definition at line 681 of file logic_program_types.h.
void Clasp::Asp::SccChecker::visitDfs | ( | PrgNode * | n, |
NodeType | t | ||
) | [private] |
Definition at line 406 of file logic_program_types.cpp.
CallStack Clasp::Asp::SccChecker::callStack_ [private] |
Definition at line 701 of file logic_program_types.h.
uint32 Clasp::Asp::SccChecker::count_ [private] |
Definition at line 705 of file logic_program_types.h.
NodeStack Clasp::Asp::SccChecker::nodeStack_ [private] |
Definition at line 702 of file logic_program_types.h.
LogicProgram* Clasp::Asp::SccChecker::prg_ [private] |
Definition at line 703 of file logic_program_types.h.
AtomList* Clasp::Asp::SccChecker::sccAtoms_ [private] |
Definition at line 704 of file logic_program_types.h.
uint32 Clasp::Asp::SccChecker::sccs_ [private] |
Definition at line 706 of file logic_program_types.h.