void (SyntaxTreeBuilder.Marker expr, @Nullable final IElementType endToken, final IElementType exprType) { assertCurrentToken(PyTokenTypes.FOR_KEYWORD); while (true) { myBuilder.advanceLexer(); parseStarTargets(); parseComprehensionRange(exprType == PyElementTypes.GENERATOR_EXPRESSION); while (myBuilder.getTokenType() == PyTokenTypes.IF_KEYWORD) { myBuilder.advanceLexer(); if (!parseOldExpression()) { myBuilder.error(message("PARSE.expected.expression")); } } if (atForOrAsyncFor()) { continue; } if (endToken == null || matchToken(endToken)) { break; } myBuilder.error(message("PARSE.expected.for.or.bracket")); break; } expr.done(exprType); }