void (final PsiBuilder builder) { boolean first = true; while (builder.getTokenType() != null) { if (expect(builder, JavaTokenType.SEMICOLON)) { return; } if (builder.getTokenType() == JavaTokenType.PRIVATE_KEYWORD || builder.getTokenType() == JavaTokenType.PROTECTED_KEYWORD) { error(builder, JavaPsiBundle.message("expected.semicolon")); return; } PsiBuilder.Marker enumConstant = parseEnumConstant(builder); if (enumConstant == null && builder.getTokenType() == JavaTokenType.COMMA && first) { IElementType next = builder.lookAhead(1); if (next != JavaTokenType.SEMICOLON && next != JavaTokenType.RBRACE) { error(builder, JavaPsiBundle.message("expected.identifier")); } } first = false; int commaCount = 0; while (builder.getTokenType() == JavaTokenType.COMMA) { if (commaCount > 0) { error(builder, JavaPsiBundle.message("expected.identifier")); } builder.advanceLexer(); commaCount++; } if (commaCount == 0 && builder.getTokenType() != null && builder.getTokenType() != JavaTokenType.SEMICOLON) { error(builder, JavaPsiBundle.message("expected.comma.or.semicolon")); return; } } }