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 flex -o scan.c scan.l
où #nfdl est le numéro de la dernière ligne du fichier scan.l.
Code : Sélectionner tout - Visualiser dans une fenêtre à part scan.l:#nfdl:fin de fichier inattendue
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 :
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...
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); }
(Edition 2)
J ai "trouvé" !
J ai juste mis des retours chariots entre les {% et %}.
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...
Je marque le sujet comme résolu à la suite de cette édition.
Partager