implement clone for AST
add clone method