A compiler parses input from a programming language to assembly language or an internal representation by matching the incoming symbols to BNF production rules. LL parsing, also called top-bottom parsing or top-down parsing, attempts applies each production rule to the incoming symbols by working from the left-most symbol yielded on a production rule and then proceeding to the next production rule for each non-terminal symbol encountered. In this way the parsing starts on the Left of the result side (right side) of the production rule and evaluations non-terminals from the Left first and, thus, proceeds down the parse tree for each new non-terminal before continuing to the next symbol for a production rule.
e.g.
- A->aBC
- B->c|cd
- C->df|eg
The common solution is to use an RR, or bottom-up or shift-reduce, parser.