Ficha Nº7
|
Exercício Nº1
|
2008.04.29
|
<AGENDA> <ENTRADA id="e1" tipo="pessoa"> <NOME>José Carlos Ramalho</NOME> <EMAIL>jcr@di.uminho.pt</EMAIL> <TELEFONE>253 604479</TELEFONE> </ENTRADA> <GRUPO gid="epl"> <ENTRADA id="e2" tipo="pessoa"> <NOME>Pedro Henriques</NOME> <EMAIL>prh@di.uminho.pt</EMAIL> <TELEFONE>253 604469</TELEFONE> </ENTRADA> <REFERENCIA refent="e1"/> <ENTRADA id="e3" tipo="pessoa"> <NOME>João Saraiva</NOME> <EMAIL>jas@di.uminho.pt</EMAIL> <TELEFONE>253 604479</TELEFONE> </ENTRADA> </GRUPO> <ENTRADA id="e4" tipo="empresa"> <NOME>Lavandaria Tudo Branco</NOME> <TELEFONE>253 604433</TELEFONE> </ENTRADA> </AGENDA>
(a)Especifique uma GIC para a linguagem com a qual se pode descrever agendas.
(b)Crie um Analisador Léxico usando o flex para os terminais da linguagem que especificou.
(c)Crie um Analisador Sintáctico usando o yacc.
(d)Defina um módulo em C para uma representação semântica e acrescente ao parser as acções necessárias para a sua construção; pode usar o seguinte módulo desenvolvido em PI como base para a sua implementação: ficheiro de interface, ficheiro da implementação.