rcc 0.5.0

A C compiler written in Rust, with a focus on good error messages.
Documentation

rcc

Build Status Minimum supported Rustc Join us on Discord

rcc: a Rust C compiler

A C compiler written in Rust, with a focus on good error messages. Warning: my first rust project, code quality is pretty low.

Running

cargo run from top level directory. You can also use cargo run -- --debug-lex, cargo run -- --debug-ast, cargo run -- --debug-asm to show a very verbose description of the lexemes/AST/IR respectively.

Use cargo run -- --help for all options.

Running on Windows

You need to have cc on your PATH. You can either install mingw + gcc or MSVC. Other than that, it should work exactly the same as on Linux.

TODO

  • Preprocessor
  • Fix boolean expressions
  • Multiple translation units (files)
  • Bitfields?
  • Compile on non-x86 platforms
  • Cross-compile

Testing

cargo test
# optionally, you can fuzz the compiler
# it may be more helpful to just `grep -R unimplemented src`, though
tests/fuzz.sh

FAQ

See FAQ.md

Implementation Defined Behavior

See IMPLEMENTATION_DEFINED.md

Contributing

See CONTRIBUTING.md. This also includes reporting bugs.