Vibe Coding a Lox Compiler, Part 3: Parsing & the Abstract Syntax Tree

Written with AI This post — and all the code behind it — was built with Claude Code. Read Part 0 for the full story of how this AI-assisted project came together. Previously in this series, Part 1 introduced the overall pipeline — scanner, parser, AST, and the multiple backends (tree-walk interpreter, bytecode VM, and LLVM codegen) — and Part 2 covered tokenization: how winnow turns raw source text into a flat stream of typed tokens. Now we have that token stream in hand. The parser’s job is to take that flat sequence and build a tree that captures the actual structure and meaning of the program. ...

February 20, 2026 · 11 min · Ray Suliteanu

Text Parsing in Rust with Nom

As soon as you want to do anything non-trivial with respect to parsing text using Rust (or any language) you should use some kind of parser… Text parsing in Rust with Nom As soon as you want to do anything non-trivial with respect to parsing text using Rust (or any language) you should use some kind of parser implementation. Writing a working parser for anything but the most trivial content is non-trivial. Unless you want to learn parsers (perhaps you’re taking a compiler course), better to use an existing tool/framework. ...

July 11, 2024 · 8 min · Ray Suliteanu