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 ast2firm: - output source file positions for panics... Missing Warnings: * dead assignments (int x = 5; x = bla(); -> dead assignment at x = 5;) * unused label *