public override void CodeGen(OutputContext output) { var op = Operator; Left.Print(output, Left is AstBinary && output.NeedNodeParens(Left)); if (OutputContext.OperatorToString(op)[0] == '>' && /* ">>" ">>>" ">" ">=" */ Left is AstUnaryPostfix leftPostfix && leftPostfix.Operator == Operator.DecrementPostfix) { // space is mandatory to avoid outputting --> output.Print(" "); }