%{ USES lexlib ; (* TP2 exercice 3 : compter le nombre de mots, de lettres et de lignes d'un fichier *) VAR nblignes,nblettres,nbmots,nbcar : integer; fichier:string; %} %% [A-Za-z]+ begin inc(nbmots);inc(nblettres,yyleng); end; . inc(nbcar); \n inc(nblignes); (* rq: Lex ne distingue pas blabla\n de blabla en fin de fichier *) %% begin (* sous l'Çditeur Turbo Pascal, tapez Ctrl-F1 sur les mots-clefs qui vous sont inconnus comme pour paramcount ci-dessus *) if paramcount<>1 then writeln('Tapez tp2ex3 nomfichier') else begin fichier:=paramstr(1); nblettres:=0; nbmots:=0; nblignes:=0; nbcar:=0; assign(yyinput,fichier); reset(yyinput); yylex; writeln('analyse du fichier ', fichier); writeln('nb lettres : ',nblettres); writeln('nb mots : ',nbmots); writeln('nb lignes : ',nblignes); writeln('nb caracteres non alphabetiques : ',nbcar); writeln('taille : ',nbcar+nblettres+nbmots+2*nblignes); end end.