Salut à tous,
Je suis élève en première année d'informatique industrielle et j'ai besoin d'aide sur l'exercice en attaché s'il vous plaît.
Ce que je voudrais, c'est de :
- transformer le programme pour qu'il accepte en entrée un fichier (.txt par exemple) et qu'il donne en sortie un fichier avec les différentes descriptions demandées;
- et aussi je bloque sur la dernière questions (celle qui demande le type de l'erreur et la chaîne qui pose problem).
Voici déjà ce que j'ai pu faire:
Code:%{ int lignes %} chaine \"[^\n"]+\" chiffre [0-9] lettre [a-zA-Z] entier [0-9]+ MOTCLEF "if"|"while"|"for"|"do"|"else"|"break"|"case"|"return" IDENT {lettre}({chiffre}|{lettre})* reel [0-9]+\.[0-9]*|\.[0-9]+ type "int"|"float"|"char"|"string"|"long"|"double" %% {chaine} printf("CHAINE : [%s]\n",yytext); [ \t\n]+ ("/*"([^*]|"*"[^/])*"*/")|("/"(\\\n)*"/"[^\n]*) printf("COMMENTAIRE : [%s]\n" ,yytext); {reel} printf("REEL \n",yytext); {MOTCLEF} printf("MOTCLEF : [%s]\n",yytext); "<"|">"|"<="|">="|"=="|"!=" printf("OP_REL : [%s]\n",yytext); "&&"|"||"|"!" printf("OP_LOG : [%s]\n",yytext); "." printf("Point : [%s]\n",yytext); "=" printf("AFFECT : [%s]\n",yytext); "+"|"-"|"/"|"*" printf("OP_ARITHM : [%s]\n", yytext); "{"|"}"|","|";"|"("|")" printf("SEP : [%s]\n", yytext); {type} printf("TYPE : [%s]\n" ,yytext); {IDENT} printf("IDENTIFICATEUR : [%s]\n" ,yytext); {entier} printf("ENTIER : [%s]\n",yytext); . printf("** erreur ligne %d ** : caractere inconnue [%s]\n", lignes, yytext); [\n] lignes++; %% main() { printf("Donner une expression:\n"); yylex(); }
-----