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 PreIncrementExpr extends UnaryExpr { 40 protected final int _incr; 41 42 public PreIncrementExpr(Location location, Expr expr, int incr) 43 { 44 super(location, expr); 46 47 _incr = incr; 48 } 49 50 public PreIncrementExpr(Expr expr, int incr) 51 { 52 super(expr); 54 55 _incr = incr; 56 } 57 58 public Value eval(Env env) 59 { 60 Value var = _expr.evalRef(env); 61 62 return var.preincr(_incr); 63 } 64 65 68 public boolean isDouble() 69 { 70 return _expr.isDouble(); 71 } 72 73 76 public boolean isLong() 77 { 78 return _expr.isLong(); 79 } 80 81 84 public boolean isNumber() 85 { 86 return true; 87 } 88 89 public String toString() 90 { 91 if (_incr > 0) 92 return "++" + _expr; 93 else 94 return "--" + _expr; 95 } 96 } 97 98 | Popular Tags |