Figure 3
How a parser generator works