1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| %{
Int noligne=0 ;
%}
Chaine \ "[^\n]\ "
Espace [^\t\040]
Alpha [a-zA-Z]
Chiffre [0-9]
Mot clé [FOR ,IF ,ELSE,WHILE,BREAK,SWITCH,CASE,DO]
Id [int,float,double,bool,char,string,CONST]
nom ({alpha}|{chiffre}|\$)({alpha}|{chiffre}|[_.\-/$])*
num1 [-+]?{chiffre}+\.?([eE][-+]?{chiffre}+)?
num2 [-+]?{chiffre}*\.{chiffre}+([eE][-+]?{chiffre}+)?
nombre {chiffre}+
%%
{espace} /* ne rien faire avec les espaces*/
//recherche des commentaires
"/*" {
int c;
while((c = yyinput()) != 0)
{
if(c == '\n')
++mon_no_ligne;
else if(c == '*')
{
if((c = yyinput()) == '/')
break;
else
unput(c);
}
}
Printf(le contenu du commentaire est "%c ",yytext) ;
}
//recherche des nombres
{nombre} printf("nombre %c",yytext) ;
//calcule du nombre de lignes
\n noligne++;
{nom} printf("nom est %c ",yytext) ;
{chaine} printf("les chaine introduite %c ",yytext) ;
%%
//la fonction main
main()
{
yylex() ;
yyin=fopen(" test.txt", r) ;
/* test.txt est un fichier texte qui contient un code en langage C dont il est la source pour analyser */
} |
Partager