Premiers pas en flex

Fermé
ijlal - 21 nov. 2012 à 22:31
Bonjour tout le monde
Je suis une débutante en flex: outil de génération automatique d'analyseur lexical.
bien que j'aie déjà lu le tutoriel suivant:

http://man.developpez.com/man1/flex.1.php

je bloque toujours sur la partie des conditions de démarrages.
Ma question est la suivante:

si par exemple je veux repérer tous les noms de fonctions dan sun programme C, il faudrait que j'affiche le Token qui suit un type de fonction:

j'ai essayé la syntaxe suivante mais ça ne marche toujours pas:


%{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
%}

lettre [a-zA-Z]
nbre [0-9]+
mot {lettre}+|{nbre}+|({lettre}"."{nbre})+
chaine {mot}+
type int|void|float|double
%s type

%%


scanf|printf|gets|puts|getchar|strcpy|strcut|strcmp ECHO;
<type>{chaine} ECHO;
. ;
%%

main(argc, argv)
int argc;
char **argv;
{
  ++argv,--argc;
  if(argc>0)
     yyin=fopen(argv[0],"r");
  else
     yyin=stdin;


  yylex();

}

le principe est de définir une condition de démarrage: celle de trouver un type de retour, et puis d'afficher le lexem qui le suit.

Votre aide serait la bienvenue. Merci