gpt4 book ai didi

antlr3 - 如何将 ANTLR 生成的 AST 翻译成它的源代码

转载 作者:行者123 更新时间:2023-12-01 02:33:16 25 4
gpt4 key购买 nike

我正在为 PL/SQL 编写一个简单的解析器和重写器工具,并且我已经完成了解析器并获得了 AST,但现在我遇到了两个问题:

  • 如何获取 AST 的某些节点,从而改变它们的值?
  • 更改节点后,如何从更新的 AST 重新生成 SQL
    ANTLR AST 是否提供类似的接口(interface)来执行此操作?

  • 示例 SQL: select a,b from t where a=2
    解析sql并获取ast后,我想将sql更改为
    select fun(a),b from t where a = fun1(2);

    顺便说一句,我用 ANTLR 为 C 生成 AST,

    感谢您的任何建议!

    最佳答案

    how to regenerate source code from an AST 上查看我的 SO 答案.

    它的工作比你想象的要多得多。

    ANTLR 以字符串模板的形式提供了一些帮助,但您可能会发现这些好坏参半:虽然它们可以生成代码文本,但它们会准确生成模板中的内容,您可能希望根据其原始布局重新生成代码,
    字符串模板的布局要覆盖的内容。

    关于antlr3 - 如何将 ANTLR 生成的 AST 翻译成它的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11752166/

    25 4 0
    文章推荐: javascript - 尝试在 jquery .load 'onLoad' 上触发 body ("myHTML.html"事件)
    文章推荐: jquery - 推特 Bootstrap 。删除列中
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com