Skip to content
rcc: a Rust C compiler
Rust C Shell
Branch: master
Clone or download
jyn514 fix typo
Thanks to Evrey on #lang-dev!
Latest commit 0b6a0c9 Dec 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE fix labels for parser issue template Dec 7, 2019
fuzz
src Fixed merge issue Dec 10, 2019
tests Revert "Revert "autogenerate headers from host"" Dec 8, 2019
.gitignore Revert "Revert "autogenerate headers from host"" Dec 8, 2019
.rustfmt.toml Add rustfmt config Aug 25, 2019
.travis.yml don't cache fuzzing outputs Nov 27, 2019
CHANGELOG.md bump version number Dec 6, 2019
CONTRIBUTING.md fix broken link Dec 13, 2019
Cargo.toml bump version number Dec 6, 2019
FAQ.md update documentation Nov 11, 2019
IMPLEMENTATION_DEFINED.md
LICENSE.txt Update Cargo.toml Jun 28, 2019
README.md revert discord logo Dec 6, 2019
coverage.sh Fix coverage script Oct 5, 2019
mycpp define __x86_64__ just for now Dec 13, 2019
rustfmt.toml

README.md

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.

TODO

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.

You can’t perform that action at this time.