Top-Down Parsing/Exercise 7: Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}
= Problem =
== Problem ==


Consider the following grammar, where '''<tt>A</tt>''' is the initial symbol and '''<tt>{a,b,c,d,e}</tt>''' is the set of terminal symbols:
Consider the following grammar, where '''<tt>A</tt>''' is the initial symbol and '''<tt>{a,b,c,d,e}</tt>''' is the set of terminal symbols:
Line 6: Line 6:
  X -> a
  X -> a
  A -> X c A e | M b
  A -> X c A e | M b
  M -> A c | X c d | (eps)
  M -> A c | X c d | ε


# 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 14: Line 14:
== Solution ==
== Solution ==


[[Image:CompilersTopDownParsingExercise7.jpg|600px]]
[[Image:CompilersTopDownParsingExercise7.jpg|700px]]


[[category:Teaching]]
[[category:Compiladores]]
[[category:Compilers]]
[[category:Ensino]]

Latest revision as of 14:04, 30 April 2024

Problem

Consider the following grammar, where A is the initial symbol and {a,b,c,d,e} is the set of terminal symbols:

X -> a
A -> X c A e | M b
M -> A c | X c d | ε
  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 acbe input sequence.

Solution