ast/visit.go added