add Token enum
add CharReader