(Created page with "{{TOCright}} = 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 |...") |
(→Problem) |
||
Line 2: | Line 2: | ||
= Problem = | = Problem = | ||
− | Consider the following grammar. C is the start symbold and { w, x, y, z } is the set of terminal symbols. | + | 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. | # 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. | # 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. | # 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. | + | # 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. |
== Solution == | == Solution == |
Contents[hide] |
Consider the following grammar. C is the start symbold and { w, x, y, z } is the set of terminal symbols.