Bonjour a tous, je cherche a apprendre a utiliser flex.
Je suis donc a la lettre le manuel trouvé ici.
J'en suis a la section 4 des Exemples simples (j en tremble d avance ).
J ai fini par me debrouiller pour faire marcher le tout premier sur le username apres m'etre un peu battu avec le yywrap...
Et maintenant j en suis donc a l'exemple suivant.
Quand je 'compile' mon fichier scan.l via
Il me répond sans cesse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
scan.l:#nfdl:fin de fichier inattendue
où #nfdl est le numéro de la dernière ligne du fichier scan.l.
J ai essayé de rajouter un retour chariot a la fin de ce fichier sans succès, essayé différentes répartitions d'ajout de sauts de lignes dans les différentes séparations de sections... rien ne change si ce n'est #nfdl...
J'ai pas vraiment d'idée de ce qui se passe... l'un(e) d'entre vous aurait-il une idée ?

(Edition 1)
J'ajoute ici le code flex dudit exemple, on ne sait jamais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
{% int num_lines = 0 , num_chars = 0;%}
 
%%
/n   {++num_lines;++num_chars;}
.     {++num_chars;}
 
%%
 
int main()
     {
     yylex();
     printf("%d,%d",num_lines,num_chars);
     }
Pour ceux qui auraient l'exemple original sous les yeux, j ai un peu changé (mais j ai aussi essayé avec l'exemple original...) notamment j ai mis la premiere ligne entre {% %} car sinon j obtenais une erreur de compilation (via gcc) mais pas d'erreur de flex par contre... euh oui maintenant que je tape ca, j trouve ca bizarre moi aussi, si ca peut vous aiguiller pour une aide...

(Edition 2)
J ai "trouvé" !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
{%
        int num_lines = 0 , num_chars = 0;
%}
 
%%
etc...
J ai juste mis des retours chariots entre les {% et %}.

Je marque le sujet comme résolu à la suite de cette édition.