/** A {@link Parser} that recognizes the token identified by {@code tokenName}. */ public Parser<Token> token(String tokenName) { return Parsers.token(InternalFunctors.tokenWithSameValue(word(tokenName))); }
/** A {@link Parser} that recognizes a token identified by any of {@code tokenNames}. */ public Parser<Token> token(String... tokenNames) { if (tokenNames.length == 0) return Parsers.never(); @SuppressWarnings("unchecked") Parser<Token>[] ps = new Parser[tokenNames.length]; for(int i = 0; i < tokenNames.length; i++) { ps[i] = Parsers.token(InternalFunctors.tokenWithSameValue(word(tokenNames[i]))); } return Parsers.or(ps); }