in src/java/org/jetbrains/plugins/clojure/parser/util/ParserUtils.java [109:131]
public static boolean lookAhead(PsiBuilder builder, boolean dropMarker, IElementType... elems) {
if (elems.length == 0) {
return false;
}
if (elems.length == 1) {
return elems[0].equals(builder.getTokenType());
}
PsiBuilder.Marker rb = builder.mark();
int i = 0;
while (!builder.eof() && i < elems.length && elems[i].equals(builder.getTokenType())) {
builder.advanceLexer();
i++;
}
if (dropMarker && i == elems.length) {
rb.drop();
} else {
rb.rollbackTo();
}
return i == elems.length;
}