Difference between revisions of "Top-Down Parsing/Exercise 9"

From Wiki**3

< Top-Down Parsing
(Solution)
(Problem)
 
(2 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
= Problem =
 
= Problem =
  
Consider the following grammar, where '''<tt>A</tt>''' is the initial symbol and '''<tt>{x, y, z}</tt>''' is the set of terminal symbols:
+
Consider the following grammar, where '''<tt>A</tt>''' is the initial symbol and '''<tt>{v,x,y,z}</tt>''' is the set of terminal symbols:
  
 
  C -> v
 
  C -> v
 
  A -> B x | z C A y
 
  A -> B x | z C A y
  B -> A v | z C w | (eps)
+
  B -> A v | z C w | ε
  
 
# Examine the grammar and rewrite it so that an LL(1) predictive parser can be built for the corresponding language.
 
# Examine the grammar and rewrite it so that an LL(1) predictive parser can be built for the corresponding language.
Line 16: Line 16:
 
[[Image:CompilersTopDownParsingExercise9.jpg|700px]]
 
[[Image:CompilersTopDownParsingExercise9.jpg|700px]]
  
[[category:Teaching]]
+
[[category:Compiladores]]
[[category:Compilers]]
+
[[category:Ensino]]

Latest revision as of 14:27, 29 April 2024

Problem

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

C -> v
A -> B x | z C A y
B -> A v | z C w | ε
  1. Examine the grammar and rewrite it so that an LL(1) predictive parser can be built for the corresponding language.
  2. Compute the FIRST and FOLLOW sets for all non-terminal symbols in the new grammar and build the parse table.
  3. Show the analysis table (stack, input, and actions) for the parsing process of the zvxy input sequence.

Solution

CompilersTopDownParsingExercise9.jpg