gpt4 book ai didi

compilation - 有什么标准的方法来存储抽象语法树文件?

转载 作者:行者123 更新时间:2023-12-04 18:11:22 27 4
gpt4 key购买 nike

我正在寻找一种将抽象语法树“转储”到文件中的方法,以便可以使用编译器解析代码,然后以与语言和编译器无关的方式存储代码。但是我找不到任何公认的方法。是否存在这种方式?

最佳答案

没有用于存储AST的标准,或者更重要的是,从您的角度来看,在工具之间共享它们。原因是AST依赖于语法(语法有所不同; C取决于具体的编译器和版本,C有“很多”)和解析技术。

已经进行了许多尝试来定义跨多种语言的通用AST形式,但是没有一个真正起作用。运算符的语义差异太大。 (仅考虑“+”:这实际上是什么意思?在Fortran中,您可以添加数组,在Java中,您可以“添加”字符串)。

但是,可以很容易地写出特定的AST。一种简单的方法是使用某种表示法,其中使用某种嵌套的“括号”来标识节点及其递归子级。

Lisp S表达式是执行此操作的常用方法。您可以see an example of the S-expression style generated by our tools

人们也为此使用了XML,但是它非常庞大。您可以看到一个XML output example here

关于compilation - 有什么标准的方法来存储抽象语法树文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13488617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com