Nesta atividade, vamos tratar da EBNF e ambiguidade.
Prove que a seguinte gramática é ambígua:
<S> → <A>
<A> → <A> + <A> | <id>
<id> → a | b | c
Para provar que uma gramática é ambígua, você precisa para uma mesma sentença, mostrar que duas árvores são possíveis de serem construídas. O desafio é justamente encontrar a sentença, mostrar as derivações e as árvores.
Transforme a seguinte gramática em EBNF:
<program> → begin <stmt_list> end
<stmt_list> → <stmt>
| <stmt> ; <stmt_list>
<stmt> → <var> = <expression>
<var> → A | B | C
<expression> → <var> + <var>
| <var> – <var> | <var>