Pour la mise en œuvre, cf. les exercices ExoFlex/"Premier pas Flex" et ExoLexParse/"Utilisation combinée Flex/Bison"
Pour aller plus loin avec les couleurs (en fonction des capacités de son terminal) :
> make NOM
" yyparse.c
et yyparse.h
yylex.c
, et inclus potentiellement le fichier yyparse.h
yywrap()
, yyerror()
et main()
doivent être écrites dans les fichiers NOM.flex ou NOM.bisongcc -Wall
, on ajoute les options "%option nounput noinput
" dans les spécifications Flex.> make lex-NOM
" génère l'analyseur lexical seul. "> make NOM
" aura le même effet si le fichier NOM.bison n'existe pas,
> make parse-NOM
" génère l'analyseur syntaxique, ou une erreur si le fichier NOM.bison n'existe pas.
Pour faciliter des impressions de "traçage" ou faire du pretty printing, le fichier "proto-color.h" fournit un accès rapide aux escapes séquences ANSI-VT100 :
GREEN(str)
, RED(str)
, BLUE(str)
, REV(str)
: colorent une chaîne constante avant impression
printf( RED("[ %s ]") , s); printf( GREEN("%s")" / "RED("%s") , s1,s2);
SET_COLOR(int i)
pour modifier la couleur courante de stdout
.
SET_COLOR(0)
reset à la couleur par défaut,
SET_COLOR(i)
positionne une couleur numéro i modulo N
SET_COLOR(1); printf("chaine1"); SET_COLOR(2); printf("chaine2"); SET_COLOR(0);