Ficha Nº6
Exercício Nº3
2008.04.29

Gerador de Indices Remissivos


Considere uma situação em que se pretende gerar automaticamente, a partir de uma descrição como a que se ilustra abaixo, o Índice Remissivo a inserir no fim de um determinado documento. Recorda-se que um Índice Remissivo é uma lista, ordenada alfabeticamente, de todos os termos a destacar num documento, com a indicação das páginas do documento onde cada termo foi definido.

A descrição inicial, escrita de acordo com uma linguagem específica que deverá ser definida para o efeito, permite indicar para cada página (referida pelo seu número ou nome do apêndice) a lista de termos a destacar. Abaixo ilustra-se uma frase válida da dita Linguagem:
INDICE
1 = processador, linguagem, compilador
2 = compilador, interpretador, gramática
3 = gramática, GR, GIC
4 = gramática, linguagem, reconhecedor
A = gramática, YACC
B = LRC
FIM DO INDICE

O Índice que deve ser gerado para este exemplo é apresentado a seguir:
ÍNDICE REMISSIVO
  compilador: 1, 2.
  GIC: 3.
  GR: 3.
  gramática: 2, 3, 4, Apx A.
  interpretador: 2.
  linguagem: 1, 4.
  LRC: Apx B.
  processador: 1.
  reconhecedor: 4.
  YACC: Apx A.

(a)Especifique uma GIC para a linguagem apresentada;

(b)Crie um analisador léxico em flex para os terminais da linguagem e o respectivo analisador sintáctico em yacc.

(c)Acrescente as acções semânticas para conseguir obter o resultado final indicado.