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