コード例 #1
0
ファイル: BytecodeCompiler.cs プロジェクト: ajlopez/AjTalk
 public override void Visit(ReturnExpression expression)
 {
     expression.Expression.Visit(this);
     this.block.CompileByteCode(ByteCode.ReturnPop);
 }
コード例 #2
0
ファイル: AbstractCompiler.cs プロジェクト: ajlopez/AjTalk
 public abstract void Visit(ReturnExpression expression);
コード例 #3
0
ファイル: Compiler.cs プロジェクト: ajlopez/AjTalk
        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);
        }