1 个不稳定版本
0.3.1 | 2022年1月10日 |
---|---|
0.3.0 |
|
#708 在 编程语言
81KB
2.5K SLoC
RSCMM
- C语言解释器库。
- 一个自我教育实践项目。
- RSCMM是Rust和CMM的组合。CMM与C++相反,意味着少于C。
流水线
将RSCMM包含到您的项目中
[dependencies]
rscmm = "0.3"
实现
src文件夹
- src/core/parser中的parser
- src/core/analyzer中的semantic_analyzer
- src/core/compiler中的compiler
- src/core/vm vm用于编译后的代码执行。
功能
- ops: + - * / % && || ! == != <= >= < >
- funcs: declare, impls, recursive
- types: int, void
- controls: if & while
示例
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int p = gcd(99, 90);
p; // single variable statement means print.
}
// Run example
rscmm::compile_and_run("example/gcd.c").unwrap();
// Get vm codes
rscmm::compile_to_code("example/gcd.c").unwrap();
依赖项
~2MB
~44K SLoC