Есть ли TreeVisitor для посещения деревьев выражений в порядке оценки? - PullRequest
1 голос
/ 21 января 2012

Используя API дерева компиляторов Java, можно пройти по листовому дереву TreePath и его дочерним элементам, используя TreeVisitor.

Существует ли реализация TreeVisitor,посещает все «узлы» в порядке оценки?Например, если 7 - 8 * 2 + 10 были проанализированы как:

        _____+__
       /        \
      -          10
     / \
    7   *
       / \
      8   2

Есть ли TreeVisitor, который посетит BinaryTree для 8 * 2, за которым следует BinaryTree для7 - (8 * 2), затем BinaryTree для (7 - (8 * 2)) + 10?

1 Ответ

0 голосов
/ 21 января 2012

Где лучше искать, чем у источника javac ( langtools )!

На этапе анализа и генерации компиляции несколько проходов выполняются через каждое дерево синтаксиса модуля компиляции. В частности, один проход, Gen, генерирует компиляции байт-кода реализации методов. Основная часть прохода Gen, по-видимому, находится в com.sun.tools.javac.jvm.Gen, который реализует JCTree.Visitor.

...