void (PsiBuilder builder) { IElementType token; PsiBuilder.Marker invalid = null; while ((token = builder.getTokenType()) != null) { if (token == JavaTokenType.RBRACE) { break; } if (token == JavaTokenType.SEMICOLON) { if (invalid != null) { invalid.error(JavaPsiBundle.message("expected.module.statement")); invalid = null; } builder.advanceLexer(); continue; } PsiBuilder.Marker statement = parseStatement(builder); if (statement == null) { if (invalid == null) invalid = builder.mark(); builder.advanceLexer(); } else if (invalid != null) { invalid.errorBefore(JavaPsiBundle.message("expected.module.statement"), statement); invalid = null; } } if (invalid != null) { invalid.error(JavaPsiBundle.message("expected.module.statement")); } if (!expect(builder, JavaTokenType.RBRACE) && invalid == null) { error(builder, JavaPsiBundle.message("expected.rbrace")); } }