Use type alias in Token.
Period commit with few changes.
Generated two implementation for , one for doc processing and the other for argv processing.