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


Java FixedPointGraphTraversal类代码示例

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


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

示例1: testGraph8

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
public void testGraph8() {
  maxChange = 2;
  traversal.computeFixedPoint(graph, A);

  try {
    traversal = new FixedPointGraphTraversal<Counter, String>(
      new EdgeCallback<Counter, String>() {
        public boolean traverseEdge(Counter source, String e, Counter dest) {
          return true;
        }
      });
    traversal.computeFixedPoint(graph, A);
    fail("Expecting Error: " +
        FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  } catch (IllegalStateException e) {
    assertEquals(e.getMessage(),
        FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  }
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:20,代码来源:FixedPointGraphTraversalTest.java

示例2: testGraph8

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
public void testGraph8() {
  maxChange = 2;
  traversal.computeFixedPoint(graph, A);

  try {
    traversal = new FixedPointGraphTraversal<Counter, String>(
      new EdgeCallback<Counter, String>() {
        @Override
        public boolean traverseEdge(Counter source, String e, Counter dest) {
          return true;
        }
      });
    traversal.computeFixedPoint(graph, A);
    fail("Expecting Error: " +
        FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  } catch (IllegalStateException e) {
    assertEquals(e.getMessage(),
        FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  }
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:21,代码来源:FixedPointGraphTraversalTest.java

示例3: testGraph8

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
public void testGraph8() {
  maxChange = 2;
  traversal.computeFixedPoint(graph, A);

  try {
    traversal = new FixedPointGraphTraversal<>(
      new EdgeCallback<Counter, String>() {
        @Override
        public boolean traverseEdge(Counter source, String e, Counter dest) {
          return true;
        }
      });
    traversal.computeFixedPoint(graph, A);
    fail("Expecting Error: " +
        FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  } catch (IllegalStateException e) {
    assertThat(e).hasMessageThat().isEqualTo(FixedPointGraphTraversal.NON_HALTING_ERROR_MSG);
  }
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:20,代码来源:FixedPointGraphTraversalTest.java

示例4: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
public void process(Node externRoot, Node root) {
  if (!canModifyExterns) {
    NodeTraversal.traverse(compiler, externRoot,
        new ProcessExternProperties());
  }

  NodeTraversal.traverse(compiler, root, new ProcessProperties());

  FixedPointGraphTraversal<NameInfo, JSModule> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  t.computeFixedPoint(symbolGraph,
      Sets.newHashSet(externNode, globalNode));
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:14,代码来源:AnalyzePrototypeProperties.java

示例5: calculateReferences

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Propagate "referenced" property down the graph.
 */
private void calculateReferences() {
  JsName window = getName(WINDOW, true);
  window.referenced = true;
  JsName function = getName(FUNCTION, true);
  function.referenced = true;

  // Propagate "referenced" property to a fixed point.
  FixedPointGraphTraversal.newTraversal(new ReferencePropagationCallback())
      .computeFixedPoint(referenceGraph);
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:14,代码来源:NameAnalyzer.java

示例6: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
@Override
public void process(Node externs, Node root) {
  NameReferenceGraphConstruction gc =
      new NameReferenceGraphConstruction(compiler);
  gc.process(externs, root);
  graph = gc.getNameReferenceGraph();
  FixedPointGraphTraversal<Name, Reference> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  getInfo(graph.MAIN).markReference(null);
  t.computeFixedPoint(graph, Sets.newHashSet(graph.MAIN));
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:12,代码来源:AnalyzeNameReferences.java

示例7: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
@Override
public void process(Node externRoot, Node root) {
  if (!canModifyExterns) {
    NodeTraversal.traverse(compiler, externRoot,
        new ProcessExternProperties());
  }

  NodeTraversal.traverse(compiler, root, new ProcessProperties());

  FixedPointGraphTraversal<NameInfo, JSModule> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  t.computeFixedPoint(symbolGraph,
      Sets.newHashSet(externNode, globalNode));
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:15,代码来源:AnalyzePrototypeProperties.java

示例8: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
@Override
public void process(Node externRoot, Node root) {
  checkState(compiler.getLifeCycleStage().isNormalized());
  if (!canModifyExterns) {
    NodeTraversal.traverseEs6(compiler, externRoot,
        new ProcessExternProperties());
  }

  NodeTraversal.traverseEs6(compiler, root, new ProcessProperties());

  FixedPointGraphTraversal<NameInfo, JSModule> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  t.computeFixedPoint(symbolGraph,
      ImmutableSet.of(externNode, globalNode));
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:16,代码来源:AnalyzePrototypeProperties.java

示例9: propagateSideEffects

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Propagate side effect information by building a graph based on call site information stored in
 * FunctionInformation and the NameBasedDefinitionProvider and then running GraphReachability to
 * determine the set of functions that have side effects.
 */
private void propagateSideEffects() {
  // Propagate side effect information to a fixed point.
  FixedPointGraphTraversal.newTraversal(
          new EdgeCallback<FunctionInformation, CallSitePropagationInfo>() {
            @Override
            public boolean traverseEdge(
                FunctionInformation source,
                CallSitePropagationInfo edge,
                FunctionInformation destination) {
              return edge.propagate(source, destination);
            }
          })
      .computeFixedPoint(sideEffectGraph);
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:20,代码来源:PureFunctionIdentifier.java

示例10: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
@Override
public void process(Node externRoot, Node root) {
  if (!canModifyExterns) {
    NodeTraversal.traverse(compiler, externRoot,
        new ProcessExternProperties());
  }

  NodeTraversal.traverse(compiler, root, new ProcessProperties());

  FixedPointGraphTraversal<NameInfo, JSModule> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  t.computeFixedPoint(symbolGraph,
      ImmutableSet.of(externNode, globalNode));
}
 
开发者ID:nicks,项目名称:closure-compiler-old,代码行数:15,代码来源:AnalyzePrototypeProperties.java

示例11: process

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
@Override
public void process(Node externs, Node root) {
  NameReferenceGraphConstruction gc =
      new NameReferenceGraphConstruction(compiler);
  gc.process(externs, root);
  graph = gc.getNameReferenceGraph();
  FixedPointGraphTraversal<Name, Reference> t =
      FixedPointGraphTraversal.newTraversal(new PropagateReferences());
  getInfo(graph.main).markReference(null);
  t.computeFixedPoint(graph, Sets.newHashSet(graph.main));
}
 
开发者ID:nicks,项目名称:closure-compiler-old,代码行数:12,代码来源:AnalyzeNameReferences.java

示例12: testGetDirectedGraph_forwardOnForward

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Test getting a forward directed graph on a forward call graph
 * and propagating over it.
 */
public void testGetDirectedGraph_forwardOnForward() { 
  // For this test we create a simple callback that when, applied until a
  // fixedpoint, computes whether a function is reachable from an initial
  // set of "root" nodes.
  
  String source =
      "function A(){B()};\n" +
      "function B(){C();D()}\n" +
      "function C(){B()};\n" +
      "function D(){};\n" +
      "function E(){C()};\n" +
      "function X(){Y()};\n" +
      "function Y(){Z()};\n" + 
      "function Z(){};" +
      "B();\n";
      
  CallGraph callgraph = compileAndRunForward(source);
  
  final Set<Function> reachableFunctions = Sets.newHashSet();
  
  // We assume the main function and X are our roots
  reachableFunctions.add(callgraph.getMainFunction());
  reachableFunctions.add(callgraph.getUniqueFunctionWithName("X"));
  
  // Propagate reachability from callers to callees
  
  EdgeCallback<CallGraph.Function, CallGraph.Callsite> edgeCallback =
      new EdgeCallback<CallGraph.Function, CallGraph.Callsite>() {
        @Override
        public boolean traverseEdge(Function caller, Callsite callsite,
            Function callee) {
          boolean changed;
          
          if (reachableFunctions.contains(caller)) {
            changed = reachableFunctions.add(callee); // Returns true if added
          } else {
            changed = false;
          }
          
          return changed;
        }
  };
  
  FixedPointGraphTraversal.newTraversal(edgeCallback)
      .computeFixedPoint(callgraph.getForwardDirectedGraph());  
  
  // We expect B, C, D, X, Y, Z and the main function should be reachable.
  // A and E should not be reachable.
  
  assertEquals(7, reachableFunctions.size());

  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("B")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("C")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("D")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("X")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Y")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Z")));
  assertTrue(reachableFunctions.contains(
      callgraph.getMainFunction()));
  
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("A")));
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("E"))); 
}
 
开发者ID:ehsan,项目名称:js-symbolic-executor,代码行数:76,代码来源:CallGraphTest.java

示例13: testGetDirectedGraph_forwardOnBackward

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Test getting a backward directed graph on a forward call graph
 * and propagating over it.
 */
public void testGetDirectedGraph_forwardOnBackward() { 
  // For this test we create a simple callback that when, applied until a
  // fixedpoint, computes whether a function is reachable from an initial
  // set of "root" nodes.
  
  String source =
      "function A(){B()};\n" +
      "function B(){C();D()}\n" +
      "function C(){B()};\n" +
      "function D(){};\n" +
      "function E(){C()};\n" +
      "function X(){Y()};\n" +
      "function Y(){Z()};\n" + 
      "function Z(){};" +
      "B();\n";
      
  CallGraph callgraph = compileAndRunBackward(source);
  
  final Set<Function> reachableFunctions = Sets.newHashSet();
  
  // We assume the main function and X are our roots
  reachableFunctions.add(callgraph.getMainFunction());
  reachableFunctions.add(callgraph.getUniqueFunctionWithName("X"));
  
  // Propagate reachability from callers to callees
  
  EdgeCallback<CallGraph.Function, CallGraph.Callsite> edgeCallback =
      new EdgeCallback<CallGraph.Function, CallGraph.Callsite>() {
        @Override
        public boolean traverseEdge(Function caller, Callsite callsite,
            Function callee) {
          boolean changed;
          
          if (reachableFunctions.contains(caller)) {
            changed = reachableFunctions.add(callee); // Returns true if added
          } else {
            changed = false;
          }
          
          return changed;
        }
  };
  
  FixedPointGraphTraversal.newTraversal(edgeCallback)
      .computeFixedPoint(callgraph.getForwardDirectedGraph());  
  
  // We expect B, C, D, X, Y, Z and the main function should be reachable.
  // A and E should not be reachable.
  
  assertEquals(7, reachableFunctions.size());

  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("B")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("C")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("D")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("X")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Y")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Z")));
  assertTrue(reachableFunctions.contains(
      callgraph.getMainFunction()));
  
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("A")));
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("E"))); 
}
 
开发者ID:ehsan,项目名称:js-symbolic-executor,代码行数:76,代码来源:CallGraphTest.java

示例14: testGetDirectedGraph_forwardOnForward

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Test getting a forward directed graph on a forward call graph
 * and propagating over it.
 */
public void testGetDirectedGraph_forwardOnForward() {
  // For this test we create a simple callback that, when applied until a
  // fixedpoint, computes whether a function is reachable from an initial
  // set of "root" nodes.

  String source =
      "function A(){B()};\n" +
      "function B(){C();D()}\n" +
      "function C(){B()};\n" +
      "function D(){};\n" +
      "function E(){C()};\n" +
      "function X(){Y()};\n" +
      "function Y(){Z()};\n" +
      "function Z(){};" +
      "B();\n";

  CallGraph callgraph = compileAndRunForward(source);

  final Set<Function> reachableFunctions = Sets.newHashSet();

  // We assume the main function and X are our roots
  reachableFunctions.add(callgraph.getMainFunction());
  reachableFunctions.add(callgraph.getUniqueFunctionWithName("X"));

  // Propagate reachability from callers to callees

  EdgeCallback<CallGraph.Function, CallGraph.Callsite> edgeCallback =
      new EdgeCallback<CallGraph.Function, CallGraph.Callsite>() {
        @Override
        public boolean traverseEdge(Function caller, Callsite callsite,
            Function callee) {
          boolean changed;

          if (reachableFunctions.contains(caller)) {
            changed = reachableFunctions.add(callee); // Returns true if added
          } else {
            changed = false;
          }

          return changed;
        }
  };

  FixedPointGraphTraversal.newTraversal(edgeCallback)
      .computeFixedPoint(callgraph.getForwardDirectedGraph());

  // We expect B, C, D, X, Y, Z and the main function should be reachable.
  // A and E should not be reachable.

  assertEquals(7, reachableFunctions.size());

  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("B")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("C")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("D")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("X")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Y")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Z")));
  assertTrue(reachableFunctions.contains(
      callgraph.getMainFunction()));

  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("A")));
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("E")));
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:76,代码来源:CallGraphTest.java

示例15: testGetDirectedGraph_forwardOnBackward

import com.google.javascript.jscomp.graph.FixedPointGraphTraversal; //导入依赖的package包/类
/**
 * Test getting a backward directed graph on a forward call graph
 * and propagating over it.
 */
public void testGetDirectedGraph_forwardOnBackward() {
  // For this test we create a simple callback that, when applied until a
  // fixedpoint, computes whether a function is reachable from an initial
  // set of "root" nodes.

  String source =
      "function A(){B()};\n" +
      "function B(){C();D()}\n" +
      "function C(){B()};\n" +
      "function D(){};\n" +
      "function E(){C()};\n" +
      "function X(){Y()};\n" +
      "function Y(){Z()};\n" +
      "function Z(){};" +
      "B();\n";

  CallGraph callgraph = compileAndRunBackward(source);

  final Set<Function> reachableFunctions = Sets.newHashSet();

  // We assume the main function and X are our roots
  reachableFunctions.add(callgraph.getMainFunction());
  reachableFunctions.add(callgraph.getUniqueFunctionWithName("X"));

  // Propagate reachability from callers to callees

  EdgeCallback<CallGraph.Function, CallGraph.Callsite> edgeCallback =
      new EdgeCallback<CallGraph.Function, CallGraph.Callsite>() {
        @Override
        public boolean traverseEdge(Function caller, Callsite callsite,
            Function callee) {
          boolean changed;

          if (reachableFunctions.contains(caller)) {
            changed = reachableFunctions.add(callee); // Returns true if added
          } else {
            changed = false;
          }

          return changed;
        }
  };

  FixedPointGraphTraversal.newTraversal(edgeCallback)
      .computeFixedPoint(callgraph.getForwardDirectedGraph());

  // We expect B, C, D, X, Y, Z and the main function should be reachable.
  // A and E should not be reachable.

  assertEquals(7, reachableFunctions.size());

  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("B")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("C")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("D")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("X")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Y")));
  assertTrue(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("Z")));
  assertTrue(reachableFunctions.contains(
      callgraph.getMainFunction()));

  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("A")));
  assertFalse(reachableFunctions.contains(
      callgraph.getUniqueFunctionWithName("E")));
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:76,代码来源:CallGraphTest.java


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