Difference between revisions of "Bottom-Up Parsing/Exercise 11: LALR(1)"

From Wiki**3

< Bottom-Up Parsing
(Created page with "== Problema == Consider the following grammar, where A is the initial symbol and { x, y, z } is the set of terminal symbols: <text> A -> B y y | z z x | x B x B -> z | ε </...")
 
(Problema)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Problema ==
 
== Problema ==
  
Consider the following grammar, where A is the initial symbol and { x, y, z } is the set of terminal symbols:  
+
Consider the following grammar, where A is the initial symbol and '''{ x, y, z }''' is the set of terminal symbols:  
<text>
+
<source lang="text">
A -> B y y | z z x | x B x
+
A B y y | z z x | x B x
B -> z | ε
+
B z | ε
</text>
+
</source>
 
# Compute the set of LALR(1) states for the grammar. Build the corresponding LALR(1) parse table.
 
# Compute the set of LALR(1) states for the grammar. Build the corresponding LALR(1) parse table.
 
# Compact the parse table, eliminating and propagating reductions.
 
# Compact the parse table, eliminating and propagating reductions.
Line 11: Line 11:
  
 
== Solução ==
 
== Solução ==
 +
 +
{{CollapsedCode|Solução completa|
 +
[[Image:Byy.jpg|768px]]
 +
}}
  
 
[[category:Compiladores]]
 
[[category:Compiladores]]
 
[[category:Ensino]]
 
[[category:Ensino]]

Latest revision as of 11:48, 2 May 2024

Problema

Consider the following grammar, where A is the initial symbol and { x, y, z } is the set of terminal symbols:

A → B y y | z z x | x B x
B → z | ε
  1. Compute the set of LALR(1) states for the grammar. Build the corresponding LALR(1) parse table.
  2. Compact the parse table, eliminating and propagating reductions.
  3. Show the parsing process for input xx (including the actions/gotos and the input and stack states). In case of conflict, assume YACC's behavior.

Solução

Solução completa

Byy.jpg