Lumiera
0.pre.03
»edit your freedom«
|
Helper to navigate a tree topology represented as GenNode tree.
Basically this is a lib::IterSource<Literal> to encapsulate a sequence of sibling nodes. A "current element" representation is layered on top to allow to expand one level deeper on demand. This "child expansion" is triggered by invoking the expandChildren()
function on the iterator front-end provided as LocationQuery::ChildIter
Definition at line 244 of file gen-node-location-query.hpp.
Public Member Functions | |
template<class IT > | |
GenNodeNavigator (Rec const &node, size_t depth, IT &&rawChildIter) | |
Private Types | |
using | Pos = typename PAR::Pos |
Private Member Functions | |
virtual TreeStructureNavigator * | expandChildren () const override |
virtual Pos | firstResult () override |
virtual void | nextResult (Pos &pos) override |
Private Attributes | |
Literal | currentChild_ = Symbol::BOTTOM |
size_t | depth_ |
Rec const & | pos_ |