Package com.caucho.quercus.expr

Examples of com.caucho.quercus.expr.Expr


    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.evalVar(env).toVar()));
      else {
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.eval(env).copy().toVar()));
      }
    }

    Map<StringValue,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(values); // php/0476
View Full Code Here


    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(arg.getName(), new EnvVarImpl(defaultExpr.evalVar(env).toVar()));
      else {
        map.put(arg.getName(), new EnvVarImpl(defaultExpr.eval(env).toLocalVar()));
      }
    }

    Map<StringValue,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(args);
View Full Code Here

      if (env.isInitializedClass(map.getKey()))
        continue;
     
      for (StaticField field : map.getValue()) {
        Value val;
        Expr expr = field._expr;

        //php/096f
        if (expr instanceof ClassConstExpr)
          val = ((ClassConstExpr) expr).eval(env);
        else
          val = expr.eval(env);

        StringValue fullName = env.createStringBuilder();
        fullName.append(_className);
        fullName.append("::");
        fullName.append(field._name);
View Full Code Here

  /**
   * Finds the matching constant
   */
  public final Value getConstant(Env env, String name)
  {
    Expr expr = _constMap.get(name);

    if (expr != null)
      return expr.eval(env);
   
    Object obj = _constJavaMap.get(name);
   
    if (obj != null)
      return env.wrapJava(obj);
View Full Code Here

    Location location = _location;

    if (location != null)
      return location;

    Expr call = peekCall(0);

    if (call != null)
      return call.getLocation();

    return Location.UNKNOWN;
  }
View Full Code Here

   * Returns the current function.
   */
  public String getFunctionLocation()
  {
    // XXX: need to work with compiled code, too
    Expr call = peekCall(0);

    if (call != null)
      return call.getFunctionLocation();
    else
      return "";
  }
View Full Code Here

    for (; i < _marshalArgs.length; i++) {
      Marshal marshal = _marshalArgs[i];

      if (i < args.length && args[i] != null) {
        Expr arg = args[i];

        int argCost = marshal.getMarshalingCost(arg);

        cost = Math.max(argCost + cost, cost);
      }
View Full Code Here

      return prevMethodName;
  }
 
  private static void addInterpreted(Env env, ArrayValue result, int i)
  {
    Expr expr = env.peekCall(i);

    if (expr instanceof FunctionExpr) {
      FunctionExpr callExpr = (FunctionExpr) expr;

      String functionName = callExpr.getName();
      if ("debug_backtrace".equals(functionName))
        return;
       
      ArrayValue call = new ArrayValueImpl();
      result.put(call);
     
      if (callExpr.getFileName() != null) {
        call.put(FILE,
                 env.createString(callExpr.getFileName(), null));
        call.put(LINE,
                 LongValue.create(callExpr.getLine()));
      }

      call.put(FUNCTION,
               env.createStringOld(callExpr.getName()));

      // Create "args" argument value array

      // evaluating args a second time is problematic, affecting mediawiki
      // php/180q
      //ArrayValueImpl args = evalArgsArray(env, callExpr);

      ArrayValueImpl args = new ArrayValueImpl(env.peekArgs(i));
     
      call.put(ARGS, args);
    }
    else if (expr instanceof MethodCallExpr) {
      MethodCallExpr callExpr = (MethodCallExpr) expr;

      ArrayValue call = new ArrayValueImpl();
      result.put(call);
     
      if (callExpr.getFileName() != null) {
        call.put(FILE,
                 env.createString(callExpr.getFileName(), null));
        call.put(LINE,
                 LongValue.create(callExpr.getLine()));
      }

      call.put(FUNCTION,
               env.createStringOld(callExpr.getName()));

      call.put(CLASS,
               env.createStringOld(env.peekCallThis(i).getClassName()));

      call.put(TYPE, env.createStringOld("->"));

      call.put(ARGS, new ArrayValueImpl());
    }
    else if (expr instanceof IncludeExpr) {
      ArrayValue call = new ArrayValueImpl();
      result.put(call);
     
      if (expr.getFileName() != null) {
        call.put(FILE, env.createString(expr.getFileName(), null));
        call.put(LINE, LongValue.create(expr.getLine()));
      }

      call.put(FUNCTION, env.createStringOld("include"));
    }
    else if (expr instanceof IncludeOnceExpr) {
      boolean isRequire = ((IncludeOnceExpr) expr).isRequire();
     
      ArrayValue call = new ArrayValueImpl();
      result.put(call);
     
      if (expr.getFileName() != null) {
        call.put(FILE, env.createStringOld(expr.getFileName()));
        call.put(LINE, LongValue.create(expr.getLine()));
      }
   
      String name;
     
      if (isRequire)
View Full Code Here

    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.evalRef(env).toVar()));
      else {
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.eval(env).copy().toVar()));
      }
    }

    Map<String,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(values); // php/0476
View Full Code Here

    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(arg.getName(), new EnvVarImpl(defaultExpr.evalRef(env).toVar()));
      else {
        map.put(arg.getName(), new EnvVarImpl(defaultExpr.eval(env).copy().toVar()));
      }
    }

    Map<String,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(args);
View Full Code Here

TOP

Related Classes of com.caucho.quercus.expr.Expr

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.