#makefile #parser #lossless #cst #modifiable

构建 makefile-lossless

无损解析器用于 Makefile

4 个版本

0.1.3 2024年6月27日
0.1.2 2023年11月27日
0.1.1 2023年11月27日
0.1.0 2023年11月27日

#220构建工具

Download history 351/week @ 2024-04-28 613/week @ 2024-05-05 640/week @ 2024-05-12 405/week @ 2024-05-19 794/week @ 2024-05-26 1024/week @ 2024-06-02 1027/week @ 2024-06-09 732/week @ 2024-06-16 1175/week @ 2024-06-23 670/week @ 2024-06-30 917/week @ 2024-07-07 739/week @ 2024-07-14 641/week @ 2024-07-21 1905/week @ 2024-07-28 1686/week @ 2024-08-04 1478/week @ 2024-08-11

每月 5,740 次下载
4 个 crate (2 直接) 中使用

Apache-2.0

28KB
800

无损解析器用于 Makefile

此 crate 提供了一个用于 makefile 的无损解析器,创建了一个可修改的 CST。

示例


let mf = Makefile::read("Makefile").unwrap();

println!("Rules in the makefile: {:?}", mf.rules().map(|r| r.targets().join(" ")).collect::<Vec<_>>());

lib.rs:

Makefile 的无损解析器

示例

use std::io::Read;
let contents = r#"PYTHON = python3

.PHONY: all

all: build

build:
	$(PYTHON) setup.py build
"#;
let makefile: makefile_lossless::Makefile = contents.parse().unwrap();

assert_eq!(makefile.rules().count(), 3);

依赖项

~1MB
~14K SLoC