Time in milliseconds to lint and format popular repositories. Lower is better. A hand-written parser also opens the door to future optimizations and improvements, especially in error recovery. Read on for discussion of the major changes, or take a look at the changelog. A hand-written parser # Parsers form the foundational layer of any static analysis tool, transforming raw source code into Abstra
![Ruff v0.4.0: a hand-written recursive descent parser for Python](https://cdn-ak-scissors.b.st-hatena.com/image/square/ad3e34729b934a6d5f38d692fbdfb998bfba9ad1/height=288;version=1;width=512/https%3A%2F%2Fastral.sh%2Fstatic%2FPNG%2FRuff_v_0_4_0.png)