boolean () { if (myBuilder.getTokenType() == PyTokenTypes.PERC || myBuilder.getTokenType() == PyConsoleTokenTypes.PLING || myBuilder.getTokenType() == PyConsoleTokenTypes.QUESTION_MARK) { SyntaxTreeBuilder.Marker expr = myBuilder.mark(); SyntaxTreeBuilder.Marker command = myBuilder.mark(); myBuilder.advanceLexer(); if (myBuilder.getTokenType() == PyConsoleTokenTypes.PLING) { myBuilder.advanceLexer(); } if (myBuilder.getTokenType() == PyTokenTypes.IDENTIFIER) { myBuilder.advanceLexer(); command.done(getReferenceType()); } else { expr.drop(); command.drop(); myBuilder.error(PyParsingBundle.message("PARSE.expected.identifier")); return false; } while (myBuilder.getTokenType() != null) { myBuilder.advanceLexer(); } expr.done(PyElementTypes.EMPTY_EXPRESSION); return true; } else { return super.parseExpressionOptional(); } }