private <T extends AST> void doFindAllNodes(AST node, Class<T> clazz, List<T> found) {
do {
if ( clazz.isAssignableFrom( node.getClass() ) ) {
found.add( (T) node );
}
if ( node.getFirstChild() != null ) {
doFindAllNodes( node.getFirstChild(), clazz, found );
}
node = node.getNextSibling();
} while ( node != null );
}