Update May 2020 The code as written on the old version of this page didn’t compile anymore as an astute reader noticed. I’ve updated this site so that it compiles with Rust 1.43. Erratum Boris Berger pointed out that I made a mistake in the grammar that allows parsing 3 * 4 + 5 as 3 * (4 + 5) instead of (3 * 4) + 5. This is now corrected. In an effort to learn Rust I wrote a parser for simple arit