boolean (boolean stopOnIn, boolean isTargetExpression, final boolean oldTest) { SyntaxTreeBuilder.Marker expr = myBuilder.mark(); boolean exprParseResult = oldTest ? parseOldTestExpression() : parseNamedTestExpression(stopOnIn, isTargetExpression); if (!exprParseResult) { expr.drop(); return false; } if (myBuilder.getTokenType() == PyTokenTypes.COMMA) { while (myBuilder.getTokenType() == PyTokenTypes.COMMA) { myBuilder.advanceLexer(); SyntaxTreeBuilder.Marker expr2 = myBuilder.mark(); exprParseResult = oldTest ? parseOldTestExpression() : parseNamedTestExpression(stopOnIn, isTargetExpression); if (!exprParseResult) { expr2.rollbackTo(); break; } expr2.drop(); } expr.done(PyElementTypes.TUPLE_EXPRESSION); } else { expr.drop(); } return true; }