Bottom-Up Parsing/Example 5: LALR(1): Difference between revisions
From Wiki**3
< Bottom-Up Parsing
No edit summary |
|||
Line 15: | Line 15: | ||
== Solution == | == Solution == | ||
* [[Media:co12-2012060603.pdf|solution (draft)]] | |||
[[category:Teaching]] | [[category:Teaching]] | ||
[[category:Compilers]] | [[category:Compilers]] |
Revision as of 18:01, 21 June 2012
Problem
Consider the following grammar. C is the start symbold and { w, x, y, z } is the set of terminal symbols.
- A → y | ε
- B → C x | x A
- C → D x B | A w
- D → w | z | ε
- Construa a tabela de análise para um analisador sintáctico ascendente LALR(1) para esta gramática, indicando o conjunto de estados do analisador e os símbolos de antevisão. A gramática é SLR(1)? Justifique.
- Tal como apresentada, a gramática pode ser processada por um analisador LL(1)? Justifique.
- Compacte a tabela de análise (de 1.), eliminando reduções unitárias e quase unitárias, bem como propagando reduções que permitam compactar a tabela.
- Apresente a tabela com o conteúdo da pilha do analisador, a entrada e a acção realizada em cada passo da análise, para a sequência de entrada z x x y. Em caso de conflitos, assuma o comportamento da ferramenta YACC.