add keyword recognition

It should be noted that a keyword cannot be followed by EOF