function getExpressionArgumentInfo(exprValue) {
    if (exprValue.type != 'reference') {
      return null;
    }
    function findArgumentName(access) {
      if (goog.isString(access)) {
        if (access[0] == '@') {
          var requiresScope = false;
          switch (access.toLowerCase()) {
            case '@duration':
            case '@userduration':
            case '@ownduration':
            case '@flowid':
              requiresScope = true;
              break;
          }
          return {
            name: null,
            requiresScope: requiresScope
          };
        } else {
          return {
            name: access,
            requiresScope: false
          };
        }
      } else {
        return findArgumentName(access.base);
      }
    };
    return findArgumentName(exprValue.value);
  }
Generates an argument filter function from the given expression tree.
@param {!Object} expr Expression tree.
@return {wtf.db.Filter.ArgumentFilterFunction?} Filter function or null if
    no filter specified.
@private