是否有 TreeVisitor 用于按评估顺序访问表达式树?

发布于 2024-12-28 12:33:48 字数 716 浏览 3 评论 0 原文

使用 Java 编译器树 API,可以使用 TreePath 及其子级的叶树/api/javac/tree/com/sun/source/tree/TreeVisitor.html" rel="nofollow">TreeVisitor

是否存在按评估顺序访问所有“节点”的 TreeVisitor 实现?例如,如果7 - 8 * 2 + 10被解析为:

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

是否有一个TreeVisitor将访问BinaryTree 8 * 2 后跟 7 - (8 * 2)BinaryTree,然后是 (7 - ( 8 * 2)) + 10 ?

Using the Java Compiler Tree API, one can traverse the leaf tree of a TreePath and its children using a TreeVisitor.

Is there a TreeVisitor implementation that visits all "nodes" in evaluation order? For example, if 7 - 8 * 2 + 10 were parsed as:

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

Is there a TreeVisitor that will visit the BinaryTree for 8 * 2 followed by the BinaryTree for 7 - (8 * 2), then the BinaryTree for (7 - (8 * 2)) + 10?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

§对你不离不弃 2025-01-04 12:33:48

还有什么地方比 javac 的源代码 (langtools) 更好看呢!

在分析和生成编译阶段,多次传递是通过每个编译单元语法树制成的。特别是第一个过程 Gen,生成方法实现的字节码编译。 Gen pass 的大部分显然位于 com.sun.tools.javac.jvm.Gen,它实现JCTree.Visitor

Where better to look than the source of javac (langtools)!

In the Analyze and Generate phase of compilation, multiple passes are made through each compilation unit syntax tree. One pass in particular, Gen, generates the bytecode compilations of method implementations. The bulk of the Gen pass is apparently in com.sun.tools.javac.jvm.Gen, which implements JCTree.Visitor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文