void () { SyntaxTreeBuilder.Marker complexLiteral = myBuilder.mark(); if (atAnyOfTokens(PyTokenTypes.PLUS, PyTokenTypes.MINUS)) { SyntaxTreeBuilder.Marker prefixExpression = myBuilder.mark(); nextToken(); if (!parseNumericLiteral()) { myBuilder.error(PyParsingBundle.message("PARSE.expected.number")); } prefixExpression.done(PyElementTypes.PREFIX_EXPRESSION); } else { parseNumericLiteral(); } if (atAnyOfTokens(PyTokenTypes.PLUS, PyTokenTypes.MINUS)) { nextToken(); if (!parseNumericLiteral()) { myBuilder.error(PyParsingBundle.message("PARSE.expected.number")); } complexLiteral.done(PyElementTypes.BINARY_EXPRESSION); } else { complexLiteral.drop(); } }