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解析器实现

Download history 182/week @ 2024-04-22 260/week @ 2024-04-29 340/week @ 2024-05-06 937/week @ 2024-05-13 841/week @ 2024-05-20 276/week @ 2024-05-27 509/week @ 2024-06-03 345/week @ 2024-06-10 1772/week @ 2024-06-17 1351/week @ 2024-06-24 1310/week @ 2024-07-01 1546/week @ 2024-07-08 1910/week @ 2024-07-15 2156/week @ 2024-07-22 1506/week @ 2024-07-29 1082/week @ 2024-08-05

每月6,933次下载
用于 2 crates

MIT/Apache

1MB
21K SLoC

Lang-C

Documentation

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-APACHELICENSE-MIT以获取法律条款)。

开发

开发过程中使用了多个外部工具

解析器(src/parser.rs)是从grammar.rustpeg中的PEG语法构建的。它手动更新并提交,不是每次构建都生成,因此列表中没有rust-peg

为了调试目的,有一个带有跟踪功能的rust-peg版本非常有用。

使用makefile来编写开发脚本

  • make更新解析器,构建库并运行测试;
  • make trace使用rust-peg-trace重新构建解析器,这预计是带有trace功能的rust-peg命令的版本
  • make check可以用作预提交git钩子,以确保解析器是最新的

没有运行时依赖

功能