kam*_*iro 4 c++ compiler-construction parsing
我理解这是一件非常困难的事情,#ifdef,#define和模板是什么,但c ++解析器的最新技术是什么(无论是开源还是专有?).
我的意思是,对于一个大学项目,我正在考虑创建一个分析c ++代码库的工具,但似乎很难找到一个好的解析器.
我应该放弃并解决java解析器吗?同样,java解析器的最新技术是什么?c#怎么样?
除了它之外,还会将g ++的解析器部分从代码分析中解脱出来,还是试图这么做呢?
你很幸运!Clang刚刚开始能够在过去几个月内解析大多数c ++程序:http://clang.llvm.org/它是为数不多的能够解析大部分C++的开源解析器之一.(主要是GCC和CLANG,我听说Oink(?)有时会变得很好)并且它被构建为由IDE等用作库,甚至具有支持代码重写的架构.
有一些专有的解析器可以完成工作,但是如果没有源访问,它们都不可用.
关于翻录gcc,这对于代码分析来说不是很实用,取决于你想要做什么,你可以使用新的插件架构从中获取一些可用的信息,但是在解析的早期阶段,它会做一些调用术语折叠,解析器本身将优化诸如"x = x"之类的东西(一个简单的例子)编译器的其他方面预计会发生这种情况,因此删除它并非易事.因此,使gcc几乎无用于任何类似源重写的东西.