Skip to content

Matissoss/mcc89

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcc89

about

mcc89 (matyz's C89 Compiler) is C89 compiler written in C89 that compiles down to x86-64 assembly (currently only my pasm-x86 assembler).

building project

Run:

just build

Or:

cc src/*.c -o mcc89 -std=c89 -pedantic -Wall -Werror

development roadmap

v0.1

Goals:

  • 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

v0.2

Goals:

  • Support for statics
  • Support for structs, enums, unions
  • Support more complex types (such as int *(*t[3])(char))

v0.3

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

v0.4

Goals:

  • First optimizations (full list of them is TBD)

credits

mcc89 is brought to you by matyz,

licensed under MPL 2.0

About

WIP!!!! C89 Compiler written in C89

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published