\input MIAS\TP 5\vfill%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%On vous propose de rŽaliser, ˆ l'aide de LEX et YACC, un analyseur syntaxique utilisant une table de symboles : les TP prŽcŽdentsvous ont prŽparŽs ˆ ce travail.\parsVoici le schŽma d'une grammaire engendrant des phrases\footnote{${}^*$}{Comme d'habitude, vous Žviterez toute lettre accentuŽe, \dots} qui expriment des liens de parentŽ ou posentdes questions ˆ leur sujet.\parm{\parindent 1cm \bfPhrase $\donne$ Affirmation $\mid$ Interrogation\parAffirmation $\donne$ Sujet Verbe Complement\parInterrogation $\donne$ {\tt qui est} Nom {\tt ?}\parSujet $\donne$ Nom\par\item{} Verbe $\donne$ {\tt est marie a $\mid$ est mariee a $\mid$ est le frere de \par\itemitem{} $\mid$ est la soeur de $\mid$ est le pere de $\mid$ est la mere de $\mid$ \dots}\parComplement $\donne$ Nom\parNom $\donne$ {\tt IdNom}\par}\parmo {\tt IdNom} est l'unitŽ lexicale des cha”nes de caractres formŽes d'une majuscule suivies de minuscules.\parm\exoEcrivez des programmes LEX et YACC produisant un analyseur syntaxique de phrases, capable de rŽaliser les points suivants :\puce L'analyse d'une phrase affirmative doit alimenter une table, dŽfinie ˆ cet effet, des renseignements fournis par ladite phrase.\puce L'analyse d'une phrase interrogative doit afficher tous les renseignements connus sur la personne en question.\puce Les phrases ˆ analyser sont entrŽes au clavier et se terminent par un passage ˆ la ligne : il faut Žvidemment pouvoir entrerplusieurs phrases de suite et prŽvoir une sortie honorable (par exemple, une phrase ``vide''). \puce Les erreurs doivent tre signalŽes par des messages pertinents !\exoEnrichissez la grammaire, ainsi que vos programmes LEX et YACC, de telle faon qu'il soit possible de dŽfinir le genre d'un prŽnom (Žvitez les prŽnoms ambigus !)et d'en tenir compte pour rendre les phrases correctes de ce point de vue.\exot{ Pour les ``littŽraires'' et les rapides.}Etendez la grammaire au cas de phrases un peu plus complexes.\bye