public override void Visit(ReturnExpression expression) { expression.Expression.Visit(this); this.block.CompileByteCode(ByteCode.ReturnPop); }
public abstract void Visit(ReturnExpression expression);
public override void Visit(ReturnExpression expression) { if (this.CurrentMethod != null && this.inBlock) { this.writer.Write("__context.value = "); expression.Expression.Visit(this); this.writer.WriteLine(";"); this.writer.WriteLine("__context.return = true;"); this.writer.Write("return __context.value"); return; } this.writer.Write("return "); expression.Expression.Visit(this); }