Gramáticas e análise descendente
- Considere a gramática:
bexpr -> bexpr or bexpr | bterm bterm -> bterm and bterm | bfactor bfactor -> not bfactor | ( bexpr ) | true | false - Identifique os símbolos terminais e não terminais da gramática.
- Demonstre que a gramática é ambígua derivando 2 árvores de análise diferentes para a mesma sequência de entrada.
- Construa uma gramática não ambígua equivalente.
- Construa a árvore de análise para a entrada:
not ( true or false and true )
- Considere a seguinte gramática:
E -> E + T | E - T | T T -> T * F | T / F | F F -> ( E ) | id - Transforme a gramática por forma a poder ser analisada por um analisador sintáctico preditivo.
- Calcule os conjuntos FIRST e FOLLOW para os símbolos não terminais.
- Elabore a tabela de análise do analisador sintáctico preditivo para esta gramática.
- Apresente uma tabela com o conteúdo da pilha, a entrada e a acção realizada em cada passo da análise quando a sequência de entrada é: a*(b+c).
- Pretende-se desenvolver um analisador sintáctico preditivo para a gramática seguinte:
S -> A B d | C d A -> C d h | S e C -> g B | h f B -> g | ø onde S é o símbolo inicial e d, e, f, g, h é o conjunto de símbolos terminais.
- Examine a gramática e transforme-a por forma a poder construir um analisador sintáctico preditivo para a linguagem correspondente.
- Construa os conjuntos FIRST e FOLLOW dos símbolos não terminais da gramática obtida na pergunta anterior.
- Construa a tabela de análise do analisador sintáctico preditivo.
- Apresente uma tabela com o conteúdo da pilha, a entrada e a acção realizada em cada passo da análise quando a sequência de entrada é: hfded.
Nota:ø representra a produção nula.