support typedef
support rename
support name space