void (BasicPrattExpressionParser parser, PsiBuilder builder, PsiBuilder.Marker beforeLhs, IElementType binOpType, int currentPrecedence, int mode) { builder.advanceLexer(); // skipping ? final PsiBuilder.Marker truePart = parser.parse(builder, mode); if (truePart == null) { error(builder, JavaPsiBundle.message("expected.expression")); beforeLhs.done(myJavaElementTypeContainer.CONDITIONAL_EXPRESSION); return; } if (builder.getTokenType() != JavaTokenType.COLON) { error(builder, JavaPsiBundle.message("expected.colon")); beforeLhs.done(myJavaElementTypeContainer.CONDITIONAL_EXPRESSION); return; } builder.advanceLexer(); final PsiBuilder.Marker falsePart = parser.tryParseWithPrecedenceAtMost(builder, CONDITIONAL_EXPR_PRECEDENCE, mode); if (falsePart == null) { error(builder, JavaPsiBundle.message("expected.expression")); } beforeLhs.done(myJavaElementTypeContainer.CONDITIONAL_EXPRESSION); }