Traverse the AST tree depth first.
Note that the AST passed in is not visited itself. Visitation starts
with its children.
if ( ast == null ) {
throw new IllegalArgumentException( "node to traverse cannot be null!" );
}
visitDepthFirst( ast.getFirstChild() );