mcc89 (matyz's C89 Compiler) is C89 compiler written in C89 that compiles down to x86-64 assembly (currently only my pasm-x86 assembler).
Run:
just buildOr:
cc src/*.c -o mcc89 -std=c89 -pedantic -Wall -WerrorGoals:
- Support primitive data types (
int,char,void,long, pointers, etc.) - Full compilation process
- Emiting x86-64 assembly
Tasks:
- Tokenizer
- Lexer
- Parser
- Checker
- Conversion into IR
- Converting IR into x86-64 assembly
Goals:
- Support for
statics - Support for
structs,enums,unions - Support more complex types (such as
int *(*t[3])(char))
Goals:
- Support for preprocessor (
#include,#ifdef,#ifndef,#define, etc.) - Support for
va_lists (and...) - Allow compiler to finally make use of system's
libc - TBD
Goals:
- First optimizations (full list of them is TBD)
mcc89 is brought to you by matyz,
licensed under MPL 2.0