In bottom-up parsing, we start with the tokens in the input string rather than with the starting symbol of the grammar. The problem is really that of the identification of the handle – the substring to be matched by the RHS of a production and replaced by the LHS. The bottom-up parsers described here all fall into the category of shift-reduce parsers . The shift operation reads and stores an input symbol, and the reduce operation matches a group of adjacent stored symbols with the RHS of a production and replaces the stored group with the LHS of the production.