mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-15 06:58:50 +00:00
1b7d25314d048c72902dd67b137535ebf432ba56
KECC: KAIST Educational C Compiler
Install
Install rustup.
Build
cargo build # debug build
cargo build --release # release build
Run
cargo run -- -h # print options
cargo run -- -p examples/fibonacci.c # parse
cargo run -- -i examples/fibonacci.c # irgen
cargo run -- examples/fibonacci.c # compile
cargo run --release -- examples/fibonacci.c # compile with release build
Test
cargo test # debug build test
cargo test --release # release build test
cargo test <test-name> # run a particular test
<test-name> can be test_ast_print, ir_smoke, ...
Fuzzing
Install
# Ubuntu 18.04 or higher
apt install -y make cmake python3
# MacOS
xcode-select install
brew install cmake python3
Run
The following script generates 10 random test cases and tests your C AST printer:
python3 tests/fuzz.py --help # print options
python3 tests/fuzz.py --print -n10 # test C AST printer for 10 times
We use Csmith to randomly generate C source codes. Csmith will be automatically downloaded and built by the test script.
Description
Languages
Rust
91.7%
C
3.9%
Python
2.1%
Shell
1.5%
C++
0.7%
Other
0.1%