ParseResult internalParse( String s, Map<String, Integer> targetUnionDecisions, boolean mustConsumeStr) { List<Token.AbstractToken> outputToks = new ArrayList<Token.AbstractToken>(); String newStr = Tokenizer.attemptParse(tokenClassIdentifier, tokenParameter, s, outputToks); if (newStr == null || (mustConsumeStr && newStr.trim().length() != 0)) { return null; } assert (outputToks.size() == 1); // outputToks should contain just one result. return new ParseResult( outputToks.get(0).get(), Token.AbstractToken.hasData(tokenClassIdentifier), newStr); }