public override IEnumerable<Expression> Generate(Compilation.AstGenerator gen)
        {
            switch (this.operation)
            {
                case FlowControlOperations.Return:
                    return gen.Return(this.operand == null ? null : this.operand.GenerateRead(gen));

                case FlowControlOperations.Break:
                    return gen.Break();

                case FlowControlOperations.Continue:
                    return gen.Continue();

                default:
                    throw Assert.Unreachable;
            }
        }