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; } }