使用ANTLR对C++代码进行语法分析并生成抽象语法树

发布于 2022-08-27 13:07:56 字数 209 浏览 33 评论 0

本人正在用java写一个代码相似度匹配检测,需要使用ANTLR对传入的C++代码进行语法分析并生成抽象语法树,搜了一下基本没看懂教程。 现在提问如下:
1.ANTLR的jar包中是否已经包含了C++的文法,可以直接对C++代码进行语法分析?
2.如何对C++代码进行语法分析并生成抽象语法树?
3.如何遍历这颗树?
4.是否有关于这方面的论文可以参考下?

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

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

发布评论

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

评论(2

自由如风 2022-09-03 13:07:56
  1. 没有c++文法,无法直接对c++文法进行分析。不过github上有一个包含大部分语言(也包括c++) antlr格式的语法文件集合。cpp14的语法文件在这里

  2. 你可以用从语法文件生成parser,然后用parser扫描c++代码,看官方教程Parser and lexer interpreters

  3. 扫描代码后你会得到一个ParseTree 这个对象提供遍历的方法

  4. 我推荐官方文档以及我的博文antlr4+maven+计算器例子

如此安好 2022-09-03 13:07:56

1、语法、文法 可以在 http://www.antlr3.org/grammar/list.html 找找啊 肯定找到的 生成AST就可以进行分析了。
2.尼玛 看 Document去
3.我操 for 啊
4.Google a

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