A library for lexing, parsing, walking, and rewriting