Canonical LR parser
A canonical LR parser (also called a LR(1) parser) is a type of bottom-up parsing algorithm used in computer science to analyze and process programming languages. It is based on the LR parsing technique, which stands for "left-to-right, rightmost derivation in reverse." Formally, a canonical LR parser is an LR(k) parser for k=1, i.e.