示例#1
0
void Tree::traverse(Visitor& visitor) {
    for (definitionIter = globalDefinitions.begin();
         definitionIter != globalDefinitions.end();
         definitionIter++) {
        auto definition = *definitionIter;
        unsigned int traverseMask = visitor.getTraverseMask();
        switch (definition->getKind()) {
            case Definition::Class:
                if (traverseMask & Visitor::TraverseClasses) {
                    definition->traverse(visitor);
                }
                break;
            case Definition::Member:
                if (traverseMask & Visitor::TraverseMethods) {
                    definition->traverse(visitor);
                }
                break;
            default:
                break;
        }
    }
}