com.oracle.truffle.api.nodes.Node.accept()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(3.7k)|赞(0)|评价(0)|浏览(727)

本文整理了Java中com.oracle.truffle.api.nodes.Node.accept()方法的一些代码示例,展示了Node.accept()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.accept()方法的具体详情如下:
包路径:com.oracle.truffle.api.nodes.Node
类名称:Node
方法名:accept

Node.accept介绍

[英]Invokes the NodeVisitor#visit(Node) method for this node and recursively also for all child nodes.
[中]为此节点以及所有子节点递归调用NodeVisitor#visit(Node)方法。

代码示例

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. private static Node findFirstNode(Node contextNode, Set<Class<? extends Tag>> tags) {
  2. Node[] first = new Node[]{null};
  3. contextNode.accept(new NodeVisitor() {
  4. @Override
  5. public boolean visit(Node node) {
  6. if (isTaggedWith(node, tags)) {
  7. first[0] = node;
  8. return false;
  9. }
  10. return true;
  11. }
  12. });
  13. return first[0];
  14. }

代码示例来源:origin: com.oracle/truffle

  1. public void probeAST(Node node) {
  2. node.accept(this);
  3. }
  4. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. private static Node findFirstNode(Node contextNode, Set<Class<? extends Tag>> tags) {
  2. Node[] first = new Node[]{null};
  3. contextNode.accept(new NodeVisitor() {
  4. @Override
  5. public boolean visit(Node node) {
  6. if (isTaggedWith(node, tags)) {
  7. first[0] = node;
  8. return false;
  9. }
  10. return true;
  11. }
  12. });
  13. return first[0];
  14. }

代码示例来源:origin: com.oracle/truffle

  1. public static <T> List<T> findAllNodeInstances(final Node root, final Class<T> clazz) {
  2. final List<T> nodeList = new ArrayList<>();
  3. root.accept(new NodeVisitor() {
  4. public boolean visit(Node node) {
  5. if (clazz.isInstance(node)) {
  6. nodeList.add(clazz.cast(node));
  7. }
  8. return true;
  9. }
  10. });
  11. return nodeList;
  12. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public static <T> List<T> findAllNodeInstances(final Node root, final Class<T> clazz) {
  3. final List<T> nodeList = new ArrayList<>();
  4. root.accept(new NodeVisitor() {
  5. public boolean visit(Node node) {
  6. if (clazz.isInstance(node)) {
  7. nodeList.add(clazz.cast(node));
  8. }
  9. return true;
  10. }
  11. });
  12. return nodeList;
  13. }

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public static <T> List<T> findAllNodeInstances(final Node root, final Class<T> clazz) {
  3. final List<T> nodeList = new ArrayList<>();
  4. root.accept(new NodeVisitor() {
  5. public boolean visit(Node node) {
  6. if (clazz.isInstance(node)) {
  7. nodeList.add(clazz.cast(node));
  8. }
  9. return true;
  10. }
  11. });
  12. return nodeList;
  13. }

代码示例来源:origin: com.oracle/truffle

  1. /**
  2. * Like {@link #findAllNodeInstances(Node, Class)} but do not visit children of found nodes.
  3. */
  4. public static <T> List<T> findNodeInstancesShallow(final Node root, final Class<T> clazz) {
  5. final List<T> nodeList = new ArrayList<>();
  6. root.accept(new NodeVisitor() {
  7. public boolean visit(Node node) {
  8. if (clazz.isInstance(node)) {
  9. nodeList.add(clazz.cast(node));
  10. return false;
  11. }
  12. return true;
  13. }
  14. });
  15. return nodeList;
  16. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public static int countNodes(Node root, NodeCountFilter filter) {
  3. NodeCounter counter = new NodeCounter(filter);
  4. root.accept(counter);
  5. return counter.count;
  6. }

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public static int countNodes(Node root, NodeCountFilter filter) {
  3. NodeCounter counter = new NodeCounter(filter);
  4. root.accept(counter);
  5. return counter.count;
  6. }

代码示例来源:origin: com.oracle/truffle

  1. /**
  2. * Walks an AST, looking for the first node with an assigned {@link SourceSection} and returning
  3. * the {@link Source}.
  4. */
  5. private static Source findSource(Node node) {
  6. final FindSourceVisitor visitor = new FindSourceVisitor();
  7. node.accept(visitor);
  8. return visitor.source;
  9. }

代码示例来源:origin: com.oracle/truffle

  1. public static int countNodes(Node root, NodeCountFilter filter) {
  2. NodeCounter counter = new NodeCounter(filter);
  3. root.accept(counter);
  4. return counter.count;
  5. }

代码示例来源:origin: org.graalvm.compiler/compiler

  1. public static int calculateNonTrivialNodes(Node node) {
  2. NonTrivialNodeCountVisitor visitor = new NonTrivialNodeCountVisitor();
  3. node.accept(visitor);
  4. return visitor.nodeCount;
  5. }

相关文章