%{
#include < stdio. h>
#include < stdlib. h>
int nb = 0 ;
int mot = 0 ;
int pen = 0 ;
%}
%option noyywrap
chiffre [ 0 - 9 ]
mot [ a- zA- Z] +
punctuation [ ,: ! ; ]
%%
{ mot} { mot++ ; } // Incrémente le compteur de mots
{ punctuation} + { pen++ ; } // Incrémente le compteur de ponctuations
{ chiffre} + { nb++ ; } // Incrémente le compteur de nombres
%%
int main( )
{
yylex( ) ; // Appel de l'analyseur lexical
printf("Il y a %d mots\n", mot);
printf("Il y a %d nombres\n", nb);
printf("Il y a %d ponctuations\n", pen);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBuYiA9IDA7CmludCBtb3QgPSAwOwppbnQgcGVuID0gMDsKJX0KCiVvcHRpb24gbm95eXdyYXAKCmNoaWZmcmUgWzAtOV0KbW90ICAgIFthLXpBLVpdKwpwdW5jdHVhdGlvbiBbLDohO10KCiUlCgp7bW90fSB7IG1vdCsrOyB9ICAvLyBJbmNyw6ltZW50ZSBsZSBjb21wdGV1ciBkZSBtb3RzCntwdW5jdHVhdGlvbn0rIHsgcGVuKys7IH0gIC8vIEluY3LDqW1lbnRlIGxlIGNvbXB0ZXVyIGRlIHBvbmN0dWF0aW9ucwp7Y2hpZmZyZX0rIHsgbmIrKzsgfSAgLy8gSW5jcsOpbWVudGUgbGUgY29tcHRldXIgZGUgbm9tYnJlcwoKJSUKCmludCBtYWluKCkgCnsgCiAgICB5eWxleCgpOyAgLy8gQXBwZWwgZGUgbCdhbmFseXNldXIgbGV4aWNhbAogICAgcHJpbnRmKCJJbCB5IGEgJWQgbW90c1xuIiwgbW90KTsKICAgIHByaW50ZigiSWwgeSBhICVkIG5vbWJyZXNcbiIsIG5iKTsKICAgIHByaW50ZigiSWwgeSBhICVkIHBvbmN0dWF0aW9uc1xuIiwgcGVuKTsKICAgIHJldHVybiAwOwp9Cg==