コード例 #1
0
 protected override ICode VisitArgAddress(ExprArgAddress e)
 {
     this.code.AppendFormat("@(<{0}>", e.Type);
     this.Visit(e.Arg);
     this.code.Append(")");
     return(e);
 }
コード例 #2
0
        private Stmt LdArga(int idx)
        {
            var type = this.ctx.MRef.Parameters[idx].ParameterType.FullResolve(this.ctx);
            var arg  = this.args[idx];
            var expr = new ExprArgAddress(this.ctx, arg, type);

            this.stack.Push(expr);
            return(null);
        }
コード例 #3
0
        protected virtual ICode VisitArgAddress(ExprArgAddress e)
        {
            this.ThrowOnNoOverride();
            var arg = (Expr)this.Visit(e.Arg);

            if (arg != e.Arg)
            {
                return(new ExprArgAddress(e.Ctx, arg, e.ElementType));
            }
            else
            {
                return(e);
            }
        }
コード例 #4
0
 protected override ICode VisitArgAddress(ExprArgAddress e)
 {
     this.Visit(e.Arg);
     return(e);
 }