当前位置: 首页>>代码示例>>Java>>正文


Java AbstractCfgNodeTraversalCallback类代码示例

本文整理汇总了Java中com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback的典型用法代码示例。如果您正苦于以下问题:Java AbstractCfgNodeTraversalCallback类的具体用法?Java AbstractCfgNodeTraversalCallback怎么用?Java AbstractCfgNodeTraversalCallback使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


AbstractCfgNodeTraversalCallback类属于com.google.javascript.jscomp.ControlFlowGraph包,在下文中一共展示了AbstractCfgNodeTraversalCallback类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: computeDependence

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes all the local variables that rValue reads from and store that
 * in the def's depends set.
 */
private void computeDependence(final Definition def, Node rValue) {
  NodeTraversal.traverse(compiler, rValue,
      new AbstractCfgNodeTraversalCallback() {
    @Override
    public void visit(NodeTraversal t, Node n, Node parent) {
      if (n.isName()) {
        Var dep = jsScope.getVar(n.getString());
        if (dep == null) {
          def.unknownDependencies = true;
        } else {
          def.depends.add(dep);
        }
      }
    }
  });
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:21,代码来源:MustBeReachingVariableDef.java

示例2: computeDependence

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes all the local variables that rValue reads from and store that
 * in the def's depends set.
 */
private void computeDependence(final Definition def, Node rValue) {
  NodeTraversal.traverseEs6(
      compiler,
      rValue,
      new AbstractCfgNodeTraversalCallback() {
        @Override
        public void visit(NodeTraversal t, Node n, Node parent) {
          if (n.isName()) {
            Var dep = allVarsInFn.get(n.getString());
            if (dep == null) {
              def.unknownDependencies = true;
            } else {
              def.depends.add(dep);
            }
          }
        }
      });
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:23,代码来源:MustBeReachingVariableDef.java

示例3: computeDependence

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes all the local variables that rValue reads from and store that
 * in the def's depends set.
 */
private void computeDependence(final Definition def, Node rValue) {
  NodeTraversal.traverse(compiler, rValue,
      new AbstractCfgNodeTraversalCallback() {
    @Override
    public void visit(NodeTraversal t, Node n, Node parent) {
      if (NodeUtil.isName(n) && jsScope.isDeclared(n.getString(), false)) {
        def.depends.add(jsScope.getVar(n.getString()));
      }
    }
  });
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:16,代码来源:MustBeReachingVariableDef.java

示例4: computeDependence

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes all the local variables that rValue reads from and store that
 * in the def's depends set.
 */
private void computeDependence(final Definition def, Node rValue) {
  NodeTraversal.traverse(compiler, rValue,
      new AbstractCfgNodeTraversalCallback() {
    @Override
    public void visit(NodeTraversal t, Node n, Node parent) {
      if (NodeUtil.isName(n) && jsScope.isDeclared(n.getString(), true)) {
        def.depends.add(jsScope.getVar(n.getString()));
      }
    }
  });
}
 
开发者ID:ehsan,项目名称:js-symbolic-executor,代码行数:16,代码来源:MustBeReachingVariableDef.java

示例5: getNumUseInUseCfgNode

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes the number of uses of the variable varName and store it in
 * numUseWithinUseCfgNode.
 */
private void getNumUseInUseCfgNode(final Node cfgNode) {

  numUsesWithinCfgNode = 0;
  AbstractCfgNodeTraversalCallback gatherCb =
      new AbstractCfgNodeTraversalCallback() {

        @Override
        public void visit(NodeTraversal t, Node n, Node parent) {
          if (n.isName() && n.getString().equals(varName)) {
            // We make a special exception when the entire cfgNode is a chain
            // of assignments, since in that case the assignment statements
            // will happen after the inlining of the right hand side.
            // TODO(blickly): Make the SIDE_EFFECT_PREDICATE check more exact
            //   and remove this special case.
            if (parent.isAssign() && (parent.getFirstChild() == n)
                && isAssignChain(parent, cfgNode)) {
              // Don't count lhs of top-level assignment chain
              return;
            } else {
              numUsesWithinCfgNode++;
            }
          }
        }

        private boolean isAssignChain(Node child, Node ancestor) {
          for (Node n = child; n != ancestor; n = n.getParent()) {
            if (!n.isAssign()) {
              return false;
            }
          }
          return true;
        }
      };

  NodeTraversal.traverseEs6(compiler, cfgNode, gatherCb);
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:41,代码来源:FlowSensitiveInlineVariables.java

示例6: getNumUseInUseCfgNode

import com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback; //导入依赖的package包/类
/**
 * Computes the number of uses of the variable varName and store it in
 * numUseWithinUseCfgNode.
 */
private void getNumUseInUseCfgNode(final Node cfgNode) {

  numUsesWithinCfgNode = 0;
  AbstractCfgNodeTraversalCallback gatherCb =
      new AbstractCfgNodeTraversalCallback() {

    @Override
    public void visit(NodeTraversal t, Node n, Node parent) {
      if (n.isName() && n.getString().equals(varName)) {
        // We make a special exception when the entire cfgNode is a chain
        // of assignments, since in that case the assignment statements
        // will happen after the inlining of the right hand side.
        // TODO(blickly): Make the SIDE_EFFECT_PREDICATE check more exact
        //   and remove this special case.
        if (parent.isAssign() && (parent.getFirstChild() == n)
            && isAssignChain(parent, cfgNode)) {
          // Don't count lhs of top-level assignment chain
          return;
        } else {
          numUsesWithinCfgNode++;
        }
      }
    }

    private boolean isAssignChain(Node child, Node ancestor) {
      for (Node n = child; n != ancestor; n = n.getParent()) {
        if (!n.isAssign()) {
          return false;
        }
      }
      return true;
    }
  };

  NodeTraversal.traverse(compiler, cfgNode, gatherCb);
}
 
开发者ID:nicks,项目名称:closure-compiler-old,代码行数:41,代码来源:FlowSensitiveInlineVariables.java


注:本文中的com.google.javascript.jscomp.ControlFlowGraph.AbstractCfgNodeTraversalCallback类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。