12 ParPosition(Paragraph * p)
13 : par(p), it(p->inset_iterator_begin()), index(-1) {}
17 Paragraph::inset_iterator it;
24 bool operator==(ParPosition const & pos1, ParPosition const & pos2) {
25 return pos1.par == pos2.par &&
27 pos1.index == pos2.index;
31 bool operator!=(ParPosition const & pos1, ParPosition const & pos2) {
32 return !(pos1 == pos2);
39 typedef std::stack<ParPosition> PosHolder;
43 ParIterator(Paragraph * par) {
44 positions.push(ParPosition(par));
47 ParIterator & operator++();
49 Paragraph * operator*() {
50 return positions.top().par;
53 PosHolder::size_type size() const
54 { return positions.size(); }
57 bool operator==(ParIterator const & iter1, ParIterator const & iter2);
66 bool operator==(ParIterator const & iter1, ParIterator const & iter2) {
67 return iter1.positions == iter2.positions;
73 bool operator!=(ParIterator const & iter1, ParIterator const & iter2) {
74 return !(iter1 == iter2);