bonjour à tous , je dois réaliser en lex un programme qui reconnait un identificateur, un entier, et un réel , et pour cela , je dispose de l'executable LEX.exe , et de la bibliothèque LEXLIB
mon LEX.exe converti le code entré en LEX en code PASCAL ;
pour commencé , voila ce que je propose comme code LEX :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
%{
  uses lexlib;
%}
lettre [A-Za-z] 
numero [0-9]
identificateur {lettre}(_|{lettre}|{numero})*
entier {numero}+
exposant [eE][+-]?{entier}
reel {entier}("."|{entier})?{exposant}?
%%
 
entier            writeln('Ceci est un ENTIER.\n');
identificateur  writeln('Ceci est un IDENTIFICATEUR.\n');
reel               writeln('Ceci est un REEL.\n');
 
%%
BEGIN
  yylex;
END.
LEX.exe me génere le .PAS sans aucune erreur (y'ont n'a-t-il ??)
Donc je compile et je lance avec turbo pascal et comme résultat, tout ce qu j'écrit , se réaffiche .
mes questions sont donc :
est-ce-que mon code LEX est correct??
est-ce qu'il faut l'écrire de cette façon pour qu'à chaque fois qu'il reconnait un entier, un identificateur ou un réel , il m'affiche ce que c'est ??
merci pour vos réponses...