summaryrefslogblamecommitdiff
path: root/lang/cparser/pkg-descr
blob: 5373a5213e27f4e92d189f087e427df215027121 (plain) (tree)
1
2
3
4
5
6
7
8




                                                                             
 

                                                                    










                                                                           
                                                             

                                                                   
                                             
cparser is a recursive descent C99 parser written in C99. It contains lexer,
parser, constructs an AST and does semantic analysis. It is currently used as
a frontend to the libFirm intermediate representation, but can be used
independently. cparser is able to bootstrap itself. It currently uses an
external preprocessor.

* fast recursive descent parser, parses C90 and C99
* handles most GCC extensions, e.g. __attribute__, inline assembler,
  computed goto, statement expressions
* handles some MSVC extensions (like declspec)
* provides many useful warnings
  * format string checker for char and wchar_t
  * unreachable code analysis
  * missing return statement check, which pinpoints exact location(s)
  * write-only/-self variables detection
  * missing and redundant forward declarations
  * most warnings switches, which are available for GCC
* provides concise messages in case of error, for example when encountering
  misspelled typenames
* compiler driver compatible with GCC (-fxxx, -Wxxx, -M, ...)
* uses libFIRM for optimization and code generation (devel/libfirm)

WWW: http://sourceforge.net/projects/cparser/