TP FLEX Correction

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

TP FLEX (Compilation)

Exercice 1

Écrivez un programme Flex qui reconnaît les nombres entiers positifs et affiche "Entier positif" lorsqu'il
en trouve un.

%{
#include <stdio.h>
%}
%%
[0-9]+ { printf("Entier positif : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
int main() {
yylex();
return 0;
}
Exercice 2

Écrivez un programme Flex qui reconnaît les opérateurs arithmétiques (+, -, *, /) et affiche "Opérateur"
lorsqu'il en trouve un.

%{
#include <stdio.h>
%}
%%
[+\-*/] { printf("Opérateur : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
int main() {
yylex();
return 0;
}

Exercice 3

Écrivez un programme Flex qui reconnaît les identificateurs en commençant par une lettre majuscule
suivie de lettres minuscules et/ou de chiffres et affiche "Identificateur valide" lorsqu'il en trouve un.
%%
[A-Z][a-zA-Z0-9]* { printf("Identificateur valide : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 4

Écrivez un programme Flex qui reconnaît les chaînes de caractères entourées de guillemets doubles ("
") et affiche "Chaîne de caractères" lorsqu'il en trouve une.
%%
\"[^\"]*\" { printf("Chaîne de caractères : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%

Exercice 5

Écrivez un programme Flex qui reconnaît les commentaires C++ commençant par // et affiche
"Commentaire C++" lorsqu'il en trouve un.
%%
\/\/.*$ { printf("Commentaire C++ : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 6

Écrivez un programme Flex qui reconnaît les adresses email et affiche "Adresse email valide" lorsqu'il
en trouve une.
%%
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} { printf("Adresse email valide :
%s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 7

Écrivez un programme Flex qui reconnaît les nombres réels (avec ou sans partie fractionnaire) et affiche
"Nombre réel" lorsqu'il en trouve un.
%%
[0-9]+(\.[0-9]+)? { printf("Nombre réel : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 8

Écrivez un programme Flex qui reconnaît les dates au format JJ/MM/AAAA et affiche "Date valide"
lorsqu'il en trouve une.
%%
[0-3]?[0-9]/[01]?[0-9]/[0-9]{4} { printf("Date valide : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 9

Écrivez un programme Flex qui reconnaît les adresses IPv4 et affiche "Adresse IPv4 valide" lorsqu'il en
trouve une.
%%
([0-9]{1,3}\.){3}[0-9]{1,3} { printf("Adresse IPv4 valide : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%
Exercice 10

Écrivez un programme Flex qui reconnaît les mots-clés du langage de programmation que vous préférez
(par exemple, if, else, while, for, etc.) et affiche "Mot-clé" lorsqu'il en trouve un.

%%
if|else|while|for|return { printf("Mot-clé : %s\n", yytext); }
. ; // Ignorer les autres caractères
%%

Vous aimerez peut-être aussi