boolean (PsiBuilder builder, IElementType start, @Nullable IElementType type, IElementType delimiter) { PsiBuilder.Marker element = builder.mark(); boolean endsWithError = false; if (expect(builder, start)) { do { endsWithError = false; PsiBuilder.Marker classReference = parseJavaCodeReference(builder, false, true, false, false); if (classReference == null) { error(builder, JavaPsiBundle.message("expected.identifier")); endsWithError = true; } } while (expect(builder, delimiter)); } if (type != null) { element.done(type); } else { element.error(JavaPsiBundle.message("bound.not.expected")); } return endsWithError; }