%{ /* une grammaire simplifiée pour HTML * Les commentaires ne sont pas envoyés à Yacc. * Aucune restriction sur les textes. */ %} %option noyywrap %s COMMENT SPACE [ \t\n]* TEXTE [^<]* CHAINE ({TEXTE}|{SPACE})* B_HTML_O {SPACE}\<[hH][tT][mM][lL]\>{SPACE} B_HEAD_O {SPACE}\<[hH][eE][aA][dD]\>{SPACE} B_TITLE_O {SPACE}\<[tT][iI][tT][lL][eE]\>{SPACE} B_BODY_O {SPACE}\<[bB][oO][dD][yY]\>{SPACE} B_H1_O {SPACE}\<[hH]1\>{SPACE} B_H2_O {SPACE}\<[hH]2\>{SPACE} B_H3_O {SPACE}\<[hH]3\>{SPACE} B_H4_O {SPACE}\<[hH]4\>{SPACE} B_H5_O {SPACE}\<[hH]5\>{SPACE} B_H6_O {SPACE}\<[hH]6\>{SPACE} B_EM_O {SPACE}\<[eE][mM]\>{SPACE} B_B_O {SPACE}\<[bB]\>{SPACE} B_P_O {SPACE}\<[pP]\>{SPACE} B_OL_O {SPACE}\<[oO][lL]\>{SPACE} B_LI_O {SPACE}\<[lL][iI]\>{SPACE} B_HTML_F {SPACE}\<\/[hH][tT][mM][lL]\>{SPACE} B_HEAD_F {SPACE}\<\/[hH][eE][aA][dD]\>{SPACE} B_TITLE_F {SPACE}\<\/[tT][iI][tT][lL][eE]\>{SPACE} B_BODY_F {SPACE}\<\/[bB][oO][dD][yY]\>{SPACE} B_H1_F {SPACE}\<\/[hH]1\>{SPACE} B_H2_F {SPACE}\<\/[hH]2\>{SPACE} B_H3_F {SPACE}\<\/[hH]3\>{SPACE} B_H4_F {SPACE}\<\/[hH]4\>{SPACE} B_H5_F {SPACE}\<\/[hH]5\>{SPACE} B_H6_F {SPACE}\<\/[hH]6\>{SPACE} B_EM_F {SPACE}\<\/[eE][mM]\>{SPACE} B_B_F {SPACE}\<\/[bB]\>{SPACE} B_P_F {SPACE}\<\/[pP]\>{SPACE} B_OL_F {SPACE}\<\/[oO][lL]\>{SPACE} B_LI_F {SPACE}\<\/[lL][iI]\>{SPACE} %% \-\> {BEGIN(INITIAL);} . {} {B_HTML_O} {yylval.texte=strdup(yytext);return HTML_O;} {B_HTML_F} {yylval.texte=strdup(yytext);return HTML_F;} {B_HEAD_O} {yylval.texte=strdup(yytext);return HEAD_O;} {B_HEAD_F} {yylval.texte=strdup(yytext);return HEAD_F;} {B_TITLE_O} {yylval.texte=strdup(yytext);return TITLE_O;} {B_TITLE_F} {yylval.texte=strdup(yytext);return TITLE_F;} {B_BODY_O} {yylval.texte=strdup(yytext);return BODY_O;} {B_BODY_F} {yylval.texte=strdup(yytext);return BODY_F;} {B_H1_O} {yylval.texte=strdup(yytext);return H1_O;} {B_H1_F} {yylval.texte=strdup(yytext);return H1_F;} {B_H2_O} {yylval.texte=strdup(yytext);return H2_O;} {B_H2_F} {yylval.texte=strdup(yytext);return H2_F;} {B_H3_O} {yylval.texte=strdup(yytext);return H3_O;} {B_H3_F} {yylval.texte=strdup(yytext);return H3_F;} {B_H4_O} {yylval.texte=strdup(yytext);return H4_O;} {B_H4_F} {yylval.texte=strdup(yytext);return H4_F;} {B_H5_O} {yylval.texte=strdup(yytext);return H5_O;} {B_H5_F} {yylval.texte=strdup(yytext);return H5_F;} {B_H6_O} {yylval.texte=strdup(yytext);return H6_O;} {B_H6_F} {yylval.texte=strdup(yytext);return H6_F;} {B_EM_O} {yylval.texte=strdup(yytext);return EM_O;} {B_EM_F} {yylval.texte=strdup(yytext);return EM_F;} {B_B_O} {yylval.texte=strdup(yytext);return B_O;} {B_B_F} {yylval.texte=strdup(yytext);return B_F;} {B_P_O} {yylval.texte=strdup(yytext);return P_O;} {B_P_F} {yylval.texte=strdup(yytext);return P_F;} {B_OL_O} {yylval.texte=strdup(yytext);return OL_O;} {B_OL_F} {yylval.texte=strdup(yytext);return OL_F;} {B_LI_O} {yylval.texte=strdup(yytext);return LI_O;} {B_LI_F} {yylval.texte=strdup(yytext);return LI_F;} {CHAINE} {yylval.texte=strdup(yytext);return CHAINE;} \< {yylval.texte=strdup(yytext);return CHAINE;} %%