ASCII art for the win:
ANSI C translation phases
=========================
+-------------------------------------------------+
| map physical characters to source character set |
| replace line terminators with newlines |
| decode trigraph sequences |
+-------------------------------------------------+
|
V
+---------------------------------------+
| join lines along trailing backslashes |
+---------------------------------------+
|
V
+-------------------------------------------------------------+
| decompose into preprocessing tokens and whitespace/comments |
| strip comments |
| retain newlines |
+-------------------------------------------------------------+
|
V
+------------------------------------------------+
| execute preprocessing directives/invoke macros |
| process included files |
+------------------------------------------------+
|
V
+----------------------------------------------------------------+
| decode escape sequences in character constants/string literals |
+----------------------------------------------------------------+
|
V
+--------------------------------------+
| concatenate adjacent string literals |
+--------------------------------------+
|
V
+------------------------------------------+
| convert preprocessing tokens to C tokens |
| analyze and translate tokens |
+------------------------------------------+
|
V
+-----------------------------+
| resolve external references |
| link libraries |
| build program image |
+-----------------------------+