spcc is a simple C11 compiler written in C++20 that aims to be strictly compliant with the ISO C standard.
Preprocessor Progress:
- Expressive diagnostic system
- Convert UTF-8 multibyte characters to universal character names
- Process trigraphs
- Process line splices
- Lex source file into preprocessing tokens
-
#ifdef/#ifndef/#else/#endif -
#define/#undef -
#include -
#error - Macro expansion with support for
#,##, and the rescanning rules -
__VA_ARGS__ -
#line -
#pragma STDC -
#if/#elif -
_Pragma - Predefined macros
- Convert string literals and character constants to the execution character set
- Concatenate adjacent string literals
- Convert preprocessing tokens to tokens
Semantic Analysis Progress:
- Type system
- Expression parser
- Declarator parser
- Expression analysis
- Constant expression evaluation