使用ANTLR对C++代码进行语法分析并生成抽象语法树
本人正在用java写一个代码相似度匹配检测,需要使用ANTLR对传入的C++代码进行语法分析并生成抽象语法树,搜了一下基本没看懂教程。 现在提问如下:
1.ANTLR的jar包中是否已经包含了C++的文法,可以直接对C++代码进行语法分析?
2.如何对C++代码进行语法分析并生成抽象语法树?
3.如何遍历这颗树?
4.是否有关于这方面的论文可以参考下?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有c++文法,无法直接对c++文法进行分析。不过github上有一个包含大部分语言(也包括c++) antlr格式的语法文件集合。cpp14的语法文件在这里
你可以用从语法文件生成parser,然后用parser扫描c++代码,看官方教程Parser and lexer interpreters
扫描代码后你会得到一个ParseTree 这个对象提供遍历的方法
我推荐官方文档以及我的博文antlr4+maven+计算器例子
1、语法、文法 可以在 http://www.antlr3.org/grammar/list.html 找找啊 肯定找到的 生成AST就可以进行分析了。
2.尼玛 看 Document去
3.我操 for 啊
4.Google a