Bottom-up parsing and LR parsers, building the tree in reverse
How shift-reduce parsing builds a parse tree from the leaves upward using a stack, why it can handle grammars LL(1) cannot, and how the algorithm actually decides what to do.
11 min readUpdated 2026-09-03compiler-designparsinglr-parsingshift-reduce