Foreword: This is our semester compiles the class to request the big journey, I do is a C-compiler, the function is not many, but runs normally, the development step is more clear, hoped shares with everybody.
The compiler runs an effect diagram as follows:
The basic contents of the design document are as follows:
1) Overall framework
2) Lexical analysis
Class Ctokenizer
Class Cscaner
C keyword table
Identifier lexical
3) Grammar Analysis
Class Cparser
Grammar
Basic tree-shaped structure
Supported statements and operations
4) Establish symbol table
Class Linelistrec
Class Bucketlistrec
Class csymboltable
Class Cfunargscheck
5) Type detection
Class Canalyzer
Type matching
function call parameter detection
6) Code generation
Pcode
80x86 ASM
7) Summary
For more information please read the design documentation provided in this article and the full source code.