protected override ICode VisitArgAddress(ExprArgAddress e) { this.code.AppendFormat("@(<{0}>", e.Type); this.Visit(e.Arg); this.code.Append(")"); return(e); }
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); }
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); } }
protected override ICode VisitArgAddress(ExprArgAddress e) { this.Visit(e.Arg); return(e); }