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.NullValue; 35 import com.caucho.quercus.env.Value; 36 import com.caucho.vfs.Path; 37 38 41 public class IncludeExpr extends UnaryExpr { 42 protected Path _dir; 43 protected boolean _isRequire; 44 45 public IncludeExpr(Location location, Path sourceFile, Expr expr) 46 { 47 super(location, expr); 48 49 _dir = sourceFile.getParent(); 50 } 51 52 public IncludeExpr(Location location, Path sourceFile, Expr expr, boolean isRequire) 53 { 54 this(location, sourceFile, expr); 55 56 _isRequire = isRequire; 57 } 58 59 public IncludeExpr(Path sourceFile, Expr expr) 60 { 61 super(expr); 62 63 _dir = sourceFile.getParent(); 64 } 65 66 public IncludeExpr(Path sourceFile, Expr expr, boolean isRequire) 67 { 68 this(sourceFile, expr); 69 70 _isRequire = isRequire; 71 } 72 73 80 public Value eval(Env env) 81 { 82 String name = _expr.evalString(env); 83 84 env.pushCall(this, NullValue.NULL); 85 try { 86 return env.include(_dir, name, _isRequire, false); 87 } finally { 88 env.popCall(); 89 } 90 } 91 92 public String toString() 93 { 94 return _expr.toString(); 95 } 96 } 97 98 | Popular Tags |