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