6 releases
new 0.1.5 | Oct 10, 2024 |
---|---|
0.1.4 | Sep 2, 2024 |
0.1.3 | Jun 27, 2024 |
0.1.2 | Nov 27, 2023 |
#226 in Build Utils
5,138 downloads per month
Used in 6 crates
(3 directly)
37KB
970 lines
Lossless parser for Makefiles
This crate provides a lossless parser for makefiles, creating a modifiable CST.
Example:
let mf = Makefile::read("Makefile").unwrap();
println!("Rules in the makefile: {:?}", mf.rules().map(|r| r.targets().join(" ")).collect::<Vec<_>>());
lib.rs
:
A lossless parser for Makefiles
Example:
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);
Dependencies
~1MB
~16K SLoC