bottom-up), ponieważ próbuje wyprowadzić produkcję najwyższego poziomu poprzez analizowanie liści.
Analizowanie typu LR przynosi następujące korzyści: parsery LR są często używane przez kompilatory do uprzedniej analizy składniowej (syntaktycznej) kodu źródłowego (wyjątkiem jest C++); parsery LR mogą być zaimplementowane bardzo wydajnie; parsery LR wykrywają błędy składniowe (wejście nie zgadza się z gramatyką!) tak szybko jak to możliwe.
Parsery LR są trudne do ręcznego zaprogramowania, dlatego są one zwykle konstruowane przez generator parserów. W zależności od tego jak jest generowana tabela parsingu, wyróżnia się następujące parsery LR: parser SLR (Simple LR ), LALR (Look-Ahead LR) i kanoniczny parser LR.
Zbiory gramatyk określone przez te rodzaje parserów mają następującą własność:
.
Programy generujące parsery Jednym z programów generujących parsery typu LR jest bardzo popularny Yacc. Specjalizuje się on w tworzeniu parserów dla gramatyk klasy LALR(1). Innym tego typu programem jest Bison. Jest on bardzo podobny do Yacca, jednak zawiera kilka udoskonaleń. Można nim generować parsery dla gramatyk typu LALR oraz parsery GLR.
Architektura parserów LR right|framed|Figure 1.