The second edition of <i>The AWK Programming Language</i> by Aho, Kernighan, and Weinberger was just released in February:<p>* <a href="https://awk.dev" rel="nofollow">https://awk.dev</a><p>ToC and preface of the new edition:<p>* <a href="https://awk.dev/pp1-13.pdf" rel="nofollow">https://awk.dev/pp1-13.pdf</a>
I've chatted with Ray (the author of wak -- love the name) a few times about our respective AWK implementations. He's a nice guy and a really thoughtful programmer, and he even found several edge-case bugs in my GoAWK implementation: <a href="https://github.com/search?q=repo%3Abenhoyt%2Fgoawk+raygard&type=issues">https://github.com/search?q=repo%3Abenhoyt%2Fgoawk+raygard&t...</a>
I have a mirror of an awk-related gopher hole from an awk fan as sadly the former domain it's offline. Here's the github repo, but the author has nice addons such as a universal awk library with missing functions for awk (tan, bitwise ops...) <a href="https://git.sr.ht/~luxferre/" rel="nofollow">https://git.sr.ht/~luxferre/</a><p>Luckly, the AWK library it's used for a project:<p><a href="https://git.sr.ht/~luxferre/DALE-8A/blob/master/tgl.awk" rel="nofollow">https://git.sr.ht/~luxferre/DALE-8A/blob/master/tgl.awk</a><p>Also, there's a solitaire written in POSIX AWK:<p>git://git.luxferre.top/nnfc.git<p>His homepage:<p><a href="https://luxferre.top" rel="nofollow">https://luxferre.top</a>
Cool. Awk is a nice tool for semi-simple record-at-a-time processing.<p>As far as I can tell, this implementation is much slower than other awks. Most awk implementations use a non-backtracking regex implementation (as do Rust and Go). By contrast, this seems to be using a backtracking implementation (e.g., like Perl and Python). For simplicity that makes sense, but for some regexes this kind of implementation can be many orders of magnitude slower.<p>My guess is that this slowdown doesn't matter for a typical toybox user, where small code size is valued. Thanks for the link!
Always good to see some love for the awk language. I, however l,went down the rabbit hole to find out about toybox and some background. Came back just puzzled (260 slides of slidedeck only for the message that it has a more permissive licence).
Oblique, but since this topic might be catnip for people who'd know:<p>Anyone aware of a Python parser for the Awk language?<p>I found a number of Awk-alikes implemented in Python, but they all sounded like they took enough liberties that I wouldn't expect them to have a parser worth trying to lean on to parse wild Awk scripts.