public override void TraverseChildren(IGreaterThanOrEqual greaterEqual) { base.TraverseChildren(greaterEqual); Bpl.Expr rexp = TranslatedExpressions.Pop(); Bpl.Expr lexp = TranslatedExpressions.Pop(); Bpl.Expr e; switch (greaterEqual.LeftOperand.Type.TypeCode) { case PrimitiveTypeCode.Float32: case PrimitiveTypeCode.Float64: e = new Bpl.NAryExpr( greaterEqual.Token(), new Bpl.FunctionCall(this.sink.Heap.RealGreaterThanOrEqual), new List<Bpl.Expr>(new Bpl.Expr[] {lexp, rexp}) ); break; default: e = Bpl.Expr.Binary(Bpl.BinaryOperator.Opcode.Ge, lexp, rexp); break; } TranslatedExpressions.Push(e); }