- bool pre(const Walker &walker, const InstanceMap::iterator &i)
- {
- return walker.pre(i->first, *i->second);
- }
-
- void post(const Walker &walker, const InstanceMap::iterator &i)
- {
- walker.post(i->first, *i->second);
- }
-
- void traverse_subgraph(const Walker &walker, InstanceMap::iterator i)
- {
- Stack<InstanceMap::iterator> stack;
- if (i != m_instances.end()) {
- const std::size_t startSize = (*i).first.get().size();
- do {
- if (i != m_instances.end()
- && stack.size() < ((*i).first.get().size() - startSize + 1)) {
- stack.push(i);
- ++i;
- if (!pre(walker, stack.top())) {
- // skip subgraph
- while (i != m_instances.end()
- && stack.size() < ((*i).first.get().size() - startSize + 1)) {
- ++i;
- }
- }
- } else {
- post(walker, stack.top());
- stack.pop();
- }
- } while (!stack.empty());
- }
- }
+void traverse_subgraph( const Walker& walker, InstanceMap::iterator i ){
+ Stack<InstanceMap::iterator> stack;
+ if ( i != m_instances.end() ) {
+ const std::size_t startSize = ( *i ).first.get().size();
+ do
+ {
+ if ( i != m_instances.end()
+ && stack.size() < ( ( *i ).first.get().size() - startSize + 1 ) ) {
+ stack.push( i );
+ ++i;
+ if ( !pre( walker, stack.top() ) ) {
+ // skip subgraph
+ while ( i != m_instances.end()
+ && stack.size() < ( ( *i ).first.get().size() - startSize + 1 ) )
+ {
+ ++i;
+ }
+ }
+ }
+ else
+ {
+ post( walker, stack.top() );
+ stack.pop();
+ }
+ }
+ while ( !stack.empty() );
+ }
+}