I tried tree-sitter today and it's exceptionally good.
The tooling is wonderful: the basic tutorial shows you how to define a grammar, a test suite, and provides a convenient CLI for generating efficient C parsers!
https://tree-sitter.github.io/tree-sitter/creating-parsers