|
|
Recursive-descent parsing is one of the simplest parsing techniques that is used in practice. Recursive-descent parsers are also called top-down parsers, since they construct the parse tree top down (rather than bottom up).
The basic idea of recursive-descent parsing is to associate each non-terminal with a procedure. The goal of each such procedure is to read a sequence of input characters that can be generated by the corresponding non-terminal, and return a pointer to the root of the parse tree for the non-terminal. The structure of the procedure is dictated by the productions for the corresponding non-terminal.
The procedure attempts to "match" the right hand side of some production for a non-terminal.
One example: --- We want to write a program for the following CFG:
<Sum>: <Sum> + <Product>
| <Sum> - <Product>
| <Product>
<Product>: <Product> * <N>
| <Product> / <N>
| <N>
<N>: ( <Sum> )
| number
---
|
|
Last modified: 27/July/98 (12:14)