Add keyword and identifier support to Lexer