# LL(k) ---- LL(1) Parsers

**LL(k**) - **L**eft to right, **L**eftmost derivation with **k** lookahead symbols

An **LL(k)** parser is a top-down parser, that is, it decides which production to use by looking at the next k tokens. This means that an LL(k) grammar must not have a point where the alternative productions have the same prefix, and that a production cannot be left-recursive - the left hand side must always resolve to a terminal. In addition, an LL(k) grammar must have a fixed value of k. Most LL(k) parsers are actually LL(1) parsers that use lookahead trees where it's necessary to disambiguate rules.

## LL(k) parser generators

Modern parser generators that generate LL parsers with multi-token lookahead include:

Please give a look at following document (definitions over LL(1) parsers and algorithm to construct table based LL(1)): Algorithm.pdf