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

From Wiki**3

< Bottom-Up Parsing
(Solução)
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 13: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

Eobesclcb.png