【发布时间】:2011-04-29 22:08:37
【问题描述】:
我知道这是一件非常困难的事情,#ifdef、#define 和模板会怎样,但 c++ 解析器的最新技术是什么(开源还是专有?)。
我的意思是,对于一个大学项目,我正在考虑创建一个用于分析 C++ 代码库的工具,但似乎很难找到一个好的解析器。
我应该放弃并满足于 java 解析器吗?同样,Java 解析器的最新技术是什么?那么c#呢?
另外,为了代码分析的目的,将 g++ 的解析器部分分离出来是否会起作用,或者这样做是否需要付出太多努力?
【问题讨论】:
-
如果你要拆掉一个 C++ 解析器,你可能想看看 Clang,他们的代码库比 GCC 的疯狂得多
-
“什么是最先进的技术”这个问题对我来说似乎相当模糊。您是否在询问人们对哪种开源解析器最好的看法?就 C++ 的复杂性而言,解析它并不难,但某些语言元素可以。我的问题是您需要能够分析什么样的信息。
-
#ifdef和#define与C++解析器必须解决的所有其他问题相比是微不足道的。 (但模板不是。) -
编译器甚至看不到 #ifdef #define 等。这就是为什么它们被称为预处理器指令。
-
@Jonathan:“解析它并不难……”什么?坦率地说,如果不完全解析它,你根本无法分析 C++。
标签: c++ parsing compiler-construction