add Lexer subclass to support multiple token emission

Turn single Token into a List and override nextToken to pull from the list.