Top-Down Parsing/Exercise 9: Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
 
(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 12: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