|
|
Line 1: |
Line 1: |
− | Consider the following grammar. | + | Consider the following grammar ('''A''' is the start symbol): |
− | <text>
| + | A -> C x A | ε |
− | A -> C x A | ε | + | B -> x C y | x C |
− | B -> x C y | x C | + | C -> x B x | z |
− | C -> x B x | z | |
− | </text>
| |
| | | |
| # Build the LALR(1) parser table. If conflicts exist, assume YACC's behavior. | | # Build the LALR(1) parser table. If conflicts exist, assume YACC's behavior. |
Revision as of 08:43, 5 April 2019
Consider the following grammar (A is the start symbol):
A -> C x A | ε
B -> x C y | x C
C -> x B x | z
- Build the LALR(1) parser table. If conflicts exist, assume YACC's behavior.
- Show the differences to LR(0) and SLR(1) parsers.
- Compact the parse table, eliminating and propagating reductions.
- Show the stack and input states, as well as the parser actions, for the sequence xxzxx.
- Solution
There is a "bug" in this solution: in the compacted table, L3 in state 10 should be in the column corresponding to y (corresponding to the shift to state 11 in the uncompacted table).