• The parser obtains a string of tokens from the lexical analyzer, and verifies that the string of token names can be generated by the grammar for the source language. • We expect the parser to report any syntax errors and to recover from commonly occurring errors to continue processing the remainder of the program. • The parser constructs a parse tree and passes it to the rest of the compiler for further processing.
• top-down or bottom-up parsers. • As implied by their names, top-down methods build parse trees from the top (root) to the bottom (leaves) , while bottom-up methods start from the leaves and work their way up to the root. • In either case, the input to the parser is scanned from left to right, one symbol at a time.