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 RightShiftExpr extends BinaryExpr { 40 public RightShiftExpr(Location location, Expr left, Expr right) 41 { 42 super(location, left, right); 43 } 44 45 public RightShiftExpr(Expr left, Expr right) 46 { 47 super(left, right); 48 } 49 50 53 public boolean isLong() 54 { 55 return true; 56 } 57 58 65 public Value eval(Env env) 66 { 67 Value lValue = _left.eval(env); 68 Value rValue = _right.eval(env); 69 70 return lValue.rshift(rValue); 71 } 72 73 80 public long evalLong(Env env) 81 { 82 Value lValue = _left.eval(env); 83 Value rValue = _right.eval(env); 84 85 return lValue.toLong() >> rValue.toLong(); 86 } 87 88 public String toString() 89 { 90 return "(" + _left + " >> " + _right + ")"; 91 } 92 } 93 94 | Popular Tags |