Until now the descriptions have implicitly been of recognisers. These build up a parse-tree but only in order to determine if a string should be accepted or not given a certain grammar. Informally, they respond ``yes'' or ``no'' when given a sentence.
However, as Section 2.2.3 will show, it is useful to retain this parse-tree and thereby save having to rebuild it during semantic analysis.
There are many parsing algorithms and the most widely used [21,22] will be compared, reviewing them in ascending order of their power and efficiency.