本文整理汇总了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;未经允许,请勿转载。 |
请发表评论