1 29 30 package com.caucho.quercus.expr; 31 32 import com.caucho.quercus.Location; 33 import com.caucho.quercus.env.Env; 34 import com.caucho.quercus.env.Value; 35 36 39 public class AssignRefExpr extends Expr { 40 protected final AbstractVarExpr _var; 41 protected final Expr _value; 42 43 public AssignRefExpr(Location location, AbstractVarExpr var, Expr value) 44 { 45 super(location); 46 _var = var; 47 _value = value; 48 } 49 50 public AssignRefExpr(AbstractVarExpr var, Expr value) 51 { 52 _var = var; 53 _value = value; 54 } 55 56 63 public Value eval(Env env) 64 { 65 Value value = _value.evalRef(env); 66 67 _var.evalAssign(env, value); 68 69 return value; 70 } 71 72 79 public Value evalCopy(Env env) 80 { 81 Value value = _value.evalRef(env); 82 83 _var.evalAssign(env, value); 84 85 return value.copy(); 86 } 87 88 public String toString() 89 { 90 return "(" + _var + " =& " + _value + ")"; 91 } 92 } 93 94 | Popular Tags |