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 import com.caucho.quercus.parser.QuercusParser; 36 import com.caucho.quercus.program.Statement; 37 38 41 abstract public class AbstractVarExpr extends Expr { 42 public AbstractVarExpr(Location location) 43 { 44 super(location); 45 } 46 47 public AbstractVarExpr() 48 { 49 } 50 53 public void assign(QuercusParser parser) 54 { 55 } 57 58 61 @Override 62 public Expr createAssign(QuercusParser parser, Expr value) 63 { 64 return parser.getExprFactory().createAssign(this, value); 65 } 66 67 70 @Override 71 public Expr createAssignRef(QuercusParser parser, 72 Expr value) 73 { 74 return parser.getExprFactory().createAssignRef(this, value); 75 } 76 77 81 @Override 82 public Expr createRef(QuercusParser parser) 83 { 84 return parser.getExprFactory().createRef(this); 85 } 86 87 91 @Override 92 public Expr createCopy(ExprFactory factory) 93 { 94 return factory.createCopy(this); 95 } 96 97 100 @Override 101 public Statement createUnset(ExprFactory factory, Location location) 102 { 103 return factory.createExpr(location, factory.createUnsetVar(this)); 104 } 105 106 113 abstract public Value eval(Env env); 114 115 122 abstract public Value evalRef(Env env); 123 124 131 abstract public Value evalArg(Env env); 132 133 140 abstract public void evalUnset(Env env); 141 142 149 abstract public void evalAssign(Env env, Value value); 150 } 151 152 | Popular Tags |