mirror of
https://github.com/uutils/awk.git
synced 2026-06-10 16:15:04 -07:00
1d72ca968107c0746f9a058268d3e7f58ab492a1
uutils AWK
This is a human, WIP, and clean implementation of an AWK interpreter, written in Rust and compatible with GNU's AWK (gawk) bug-for-bug. Expected to be production-ready before Ubuntu 26.10. Made with love.
State of the Repo
Lexer
Pretty much done; lacking a POSIX-compatibility mode (trivial) and arena integration (trivial).
Parser
Also mostly done; some bullet points:
- Rough edges around error handling on expected tokens.
- Preprocessor is TBD.
- The Pratt routine is a bit spaghetti and should be refactored (trivial).
- Missing getline expressions and command redirections (trivial).
- We are working on test coverage and fuzzing.
- It would be nice to reduce LOC; maybe we get rid of S-expr debug output.
Interpreter
TBD; work on it will be started once we get good testing on the parser. Ideally, the design should be a bytecode machine or a JIT. Expect this to be a fast-paced repo.
Contributing
See this.
License
This is licensed under either the MIT License or the Apache License v2.0. See the LICENSE-MIT and LICENSE-APACHE files for details.
Description
Languages
Rust
100%