void (final SyntaxTreeBuilder builder) { LOG.assertTrue(builder.getTokenType() == PyTokenTypes.PRINT_KEYWORD); final SyntaxTreeBuilder.Marker statement = builder.mark(); builder.advanceLexer(); if (builder.getTokenType() == PyTokenTypes.GTGT) { final SyntaxTreeBuilder.Marker target = builder.mark(); builder.advanceLexer(); getExpressionParser().parseSingleExpression(false); target.done(PyElementTypes.PRINT_TARGET); } else { getExpressionParser().parseSingleExpression(false); } while (builder.getTokenType() == PyTokenTypes.COMMA) { builder.advanceLexer(); if (getEndOfStatementsTokens().contains(builder.getTokenType())) { break; } getExpressionParser().parseSingleExpression(false); } checkEndOfStatement(); statement.done(PyElementTypes.PRINT_STATEMENT); }