Question de newby pour flex (analyse lexicale)
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
Code:
flex -o scan.c scan.l
Il me répond sans cesse
Code:
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:
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:
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.