|
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.