Building and traversing an ast.