aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cparser/pkg-descr
blob: 40555d4c0af68513541fe0c5394fa2a4d0935658 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cparser is a C compiler, which can parse C89 and C99 as well as many GCC and
some MSVC extensions.  It also provides many useful analyses for warnings.  It
uses libFIRM, which provides a SSA-based intermediate representation in form of
explicit dependency graphs, for optimization and code generation.  Parsing is
done with a handwritten recursive descent parser.  The AST representation is
straightforward, so it can be used for other purposes than code generation.

* fast recursive descent parser, parses C89 and C99
* handles most GCC extensions, f.e. __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 with GCC (-fxxx, -Wxxx, -M, ...)
* uses libFIRM for optimization and code generation (devel/libfirm)

WWW: http://www.libfirm.org