Lexer: - Add preprocessor code - proper handling of different file encodings, parsing non-ascii strings Parser: - the expect macros abort functions directly. This leads to some functions not resetting the current context properly (parse_for) - label: declaration; is no valid C99 but we parse it anyway - designator support for initializers - add constant folding code - Refactor code, so code to handle number values and strings is an own module and replacable - Support some attributes. noreturn, unused, printf, scanf, packed would be interesting candidates ast2firm: - output source file positions for panics... - output variable names for uninitialized variable warnings Missing Warnings: * dead assignments (int x = 5; x = bla(); -> dead assignment at x = 5;) * unused label *