}
private QualifiedIdentifierVariant getMostProbableParseVariant(ParserBuilder builder, ParsePathNode node) {
QualifiedIdentifierElementType elementType = getElementType();
TokenType separatorToken = elementType.getSeparatorToken().getTokenType();
ElementTypeLookupCache lookupCache = elementType.getLookupCache();
SharedTokenTypeBundle sharedTokenTypes = getElementType().getLanguage().getSharedTokenTypes();
TokenType identifier = sharedTokenTypes.getIdentifier();
List<TokenType> chan = new ArrayList<TokenType>();
int offset = 0;
boolean wasSeparator = true;
TokenType tokenType = builder.lookAhead(offset);
while (tokenType != null) {
if (tokenType == separatorToken) {
if (wasSeparator) chan.add(identifier);
wasSeparator = true;
} else {
if (wasSeparator) {
if (tokenType.isIdentifier() || lookupCache.containsToken(tokenType))
chan.add(tokenType); else
chan.add(identifier);
} else {
break;
}