TP de compilation : une solution de l'exercice 4 du TP 3
%{
int asparagine=0;
int isoleucine=0;
%}
%s ERREUR
%%
^\n
{return 0;}
<INITIAL>[Aa][Aa][UuCc] {ECHO;asparagine++;}
<INITIAL>[Aa][Uu][AaUuCc] {ECHO;isoleucine++;}
<INITIAL>[AaUuGgCc]{3} {ECHO;}
<INITIAL,ERREUR>.
{BEGIN(ERREUR);}
<ERREUR>\n
{ printf("\nmot refusé\n");
BEGIN(INITIAL);
asparagine=0; isoleucine=0; }
<INITIAL>\n
{ if ((asparagine>0)&&(isoleucine>0))
printf("\nmot refusé\n");
else printf("\nmot accepté\n");
asparagine=0; isoleucine=0;
BEGIN(INITIAL); }
© 2000, 2017 – A. Sigayret