Do you know any of C/C++ parsers which are capable of name and overload resolution?
I need a C/C++ language (n开发者_JAVA百科ot GCC but Microsoft Visual C++) parser able performing naming and overloading resolution and macro expansion. Nowadays I use Understand, but it is too buggy and doesn't provide all the features I need.
You can't get a single parser to do both C and C++. They are different langauges with different syntax and semantics. You can get individual parsers for each.
See our C Front End and C++ Front End. Both of these handle a variety of dialects (both GCC and MS), build ASTs, construct full symbol tables. There is a preprocessor module that will perform either full expansion, or under your control, expand only certain conditionals and macros.
The C front end also has control flow, data flows, points-to and call graph construction. Unlike Understand, which doesn't really have deep flow analysis, the C Front end will get the targets of indirect function calls correct (within conservative assumptions).
The C++ front end handles the full C++0X language. We are in the process of completing control flow graph construction for it.
The underlying engine DMS Software Reengineering Toolkit provides customizable access to all this information. It does not provide pretty pictures like Understand; it is intended to let you build custom analysis and program transformation tools.
精彩评论