
128 Compilers – Principles and Practice
can be any number of possible parses being explored. The parsers proceed in lockstep; that is,
all of them consume (shift) a given input symbol before any of them proceed to the next. Each of
the cloned parsers eventually meets one of two possible fates: either it runs into a parsing error,
in which case it simply vanishes, or it merges with another parser, because the two of them have
reduced the input to an identical set of symbols.
During the time that there are multiple parsers, semantic actions are recorded, but not
performed. When a parser disappears, its recorded semantic actions disappear as w ...