c 解析java 对象_使用Java解析/读取C-Header文件

您可以将现有的C解析器用于Java.当然,它比解析头文件要多得多,但这不应该伤害你.

我们使用Eclipse CDT项目中的解析器.这是一个Eclipse插件,但我们在Eclipse之外成功使用它,我们只需将Eclipse的3个JAR文件与解析器JAR捆绑在一起.

要使用CDT解析器,请从org.eclipse.cdt.core.model.ILanguage的实现开始,例如org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage.您可以在其上调用getTranslationUnit,传递代码和一些帮助程序.代码文件由org.eclipse.cdt.core.parser.FileContent实例表示(至少在CDT7中,这似乎改变了很多).创建此类对象的最简单方法是FileContent.createForExternalFileLocation(filename)或FileContent.create(filename,content).这样您就不需要关心Eclipse IFile的东西了,这似乎只适用于项目和工作区.

你得到的IASTTranslationUnit表示文件的整个AST.其中的所有节点都是IASTSomething类型的实例,例如IASTDeclaration等.您可以使用访问者模式实现自己的org.eclipse.cdt.core.dom.ast.ASTVisitor子类来迭代AST.如果您需要进一步的帮助,请询问.

我们使用的JAR文件是org.eclipse.cdt.core.jar,org.eclipse.core.resources.jar,org.eclipse.equinox.common.jar和org.eclipse.osgi.jar.

编辑:我找到了一篇包含源代码片段的论文:“使用Eclipse C/C++开发工具作为一个强大,功能齐全,主动维护的开源C解析器”,但它已不再在线提供(仅作为缩短版本).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值