Bottom-Up Parsing/Exercise 9: LALR(1): Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
No edit summary
Line 2: Line 2:


Consider the following grammar, where E is the initial symbol and { [, ], ;, id } is the set of terminal symbols:  
Consider the following grammar, where E is the initial symbol and { [, ], ;, id } is the set of terminal symbols:  
<text>
<source lang="text">
E -> [ E ; L ] | id
E -> [ E ; L ] | id
L -> E | E ; L
L -> E | E ; L
</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.
# Show the parsing process for input '''[id;id;id]''' (including the actions/gotos and the input and stack states). In case of conflict, assume YACC's behavior.
# Show the parsing process for input '''[id;id;id]''' (including the actions/gotos and the input and stack states). In case of conflict, assume YACC's behavior.

Revision as of 11:26, 12 February 2019

Problema

Consider the following grammar, where E is the initial symbol and { [, ], ;, id } is the set of terminal symbols:

E -> [ E ; L ] | id
L -> E | E ; L
  1. Compute the set of LALR(1) states for the grammar. Build the corresponding LALR(1) parse table.
  2. Show the parsing process for input [id;id;id] (including the actions/gotos and the input and stack states). In case of conflict, assume YACC's behavior.
  3. Is this an LL(1) grammar? Why?

Solução

Solução completa