20个版本 (13个破坏性更新)
使用旧的Rust 2015
0.15.1 | 2023年9月4日 |
---|---|
0.15.0 | 2023年1月18日 |
0.14.0 | 2022年10月4日 |
0.13.0 | 2022年6月21日 |
0.1.0 | 2017年10月22日 |
#263 在 解析器实现
每月6,933次下载
用于 2 crates
1MB
21K SLoC
Lang-C
Ligtweight parser of C language for Rust users. Almost full support for C11 revision of the language. Several GCC and Clang extensions are also supported as an option.
extern crate lang_c;
use lang_c::driver::{Config, parse};
fn main() {
let config = Config::default();
println!("{:?}", parse(&config, "example.c"));
}
错误
只需打开一个问题,错误报告和补丁都非常欢迎。
许可证
Apache 2.0或MIT许可证双重授权(参见LICENSE-APACHE
和LICENSE-MIT
以获取法律条款)。
开发
开发过程中使用了多个外部工具
- GNU make
- rustfmt
- rust-peg 0.5.4
解析器(src/parser.rs
)是从grammar.rustpeg
中的PEG语法构建的。它手动更新并提交,不是每次构建都生成,因此列表中没有rust-peg
。
为了调试目的,有一个带有跟踪功能的rust-peg版本非常有用。
使用makefile来编写开发脚本
make
更新解析器,构建库并运行测试;make trace
使用rust-peg-trace
重新构建解析器,这预计是带有trace
功能的rust-peg
命令的版本make check
可以用作预提交git钩子,以确保解析器是最新的