Bra*_*oom 6 grammar parsing abstract-syntax-tree lexer
我有一个业余爱好项目的想法,它执行一些代码分析和操作.该项目将需要给定源文件的具体和抽象语法树.此外,两棵树之间的双向参考将是有帮助的.我想避免转录语法来构建自己的词法分析器和解析器.
是否有用于描述具体或抽象语法树的标准格式?是否有广泛使用的工具链支持输出这些格式?
我没有考虑特定的目标编程语言.任何流行的都可以用于原型,但我更喜欢我熟悉的一个:Python,C#,Javascript或C/C++.
我希望能够通过工具或库运行源文件并返回两棵树.在理想的世界中,在用户编辑的代码上运行此工具并容忍错误是可行的.同样,我只是想开发一个原型,所以这些要求非常宽松.
谢谢!
在我们的项目中,我们在 UML 中定义了 AST 元模型,并使用 ANTLR (Java) 来填充模型。我们还在解析后维护来自 ANTLR 的标记信息,但我们尚未尝试使用对模型所做的修改来更新底层文本文件。
这有一个可怕的开销(在基础设施中,例如 Eclipse UML2/EMF),但我们的目标是使用高级工具进行基于模型/驱动的开发(MDD、MDA),所以我们决定在每个级别上使用它。
我想我们的一位学生曾经玩过OpenArchitectureWare,并设法将基于 Eclipse 的生成编辑器的更改自动返回到语法树(与上面的 UML 模型无关),但我不知道这方面的细节。
您可能还想查看ANTLR 的树语法。