rnix is a Nix parser written in Rust.
This can be used to manipulate the Nix AST and can for example be used for:
and a lot more!
rnix ...
map
and filter
at your fingertips!Examples can be found in the examples/
directory.
You may also want to see nix-explorer: An example that highlights AST nodes in valid Nix code. This demonstrates how span information is preserved.
I have implemented everything I can think of. Most, if not all of these, are
tested inside the tests/
directory. If some kind of syntax isn't tested
there, you should report it as unimplemented.