java - 使用ANTLR对C++代码进行语法分析并生成抽象语法树
高洛峰
高洛峰 2017-04-17 11:19:18
[Java讨论组]

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
黄舟
  1. 没有c++文法,无法直接对c++文法进行分析。不过github上有一个包含大部分语言(也包括c++) antlr格式的语法文件集合。cpp14的语法文件在这里

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

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

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

高洛峰

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号