=============== INDICATIONS =================
1 - METHODE :

- progressive, avec tests au pas a pas
. ne pas hesiter a multiplier les versions intermediaires
. essayer chaque nouvelle definition sur un test separe
. si une expression complexe ne fonctionne pas, regresser en
  une version provisoire qui teste chaque composant isolement
  
- eviter les ambiguites entre plusieurs macro-definitions   



2 - CAS PARTICULIERS a) SPECIFICATION DE '(' ')' '{' '}' '(' ')' DANS LEUR SENS USUEL - des specifs comme '(' et ')' peuvent ne pas fonctionner. - utiliser alors \( \) ou bien [(] [)] - une definition encore plus indirecte peut s'averer necessaire, p.ex. OSB \[ CSB \] %% {OSB}{CSB} { /* opening/closing square bracket pair */ }
b) UNITES A PLUSIEURS CHAMPS SEPARES PAR DES ESPACES : on DOIT specifier ces espaces dans l'expression reguliere

3 - AIDE A LA MISE AU POINT : UNE FONCTION D'ECHO PLUS CLAIRE On pourra utiliser la fonction titledEcho() definie comme ci-dessous (attention, pour l'affichage web, un espace a ete ajoute apres le '<') : - visualise le fragment entre deux delimiteurs, encadre par les header/trailer - pour un meilleur debogage, elle force l'impression immediate %{ #include < stdio.h> void titledEcho( char *header, char * trailer ) { printf( "[%s:%s]%s", header, yytext, trailer ); fflush(stdout); } %} %% yahdahyahdah { titledEcho("DOUCE MELODIE","\n"); } ... %% Resultat a la reconnaissance ==> [DOUCE MELODIE:yahdahyahdah]