%s BODY HEADER %{ #include "email.h" #include "y.tab.h" %} FROM (From\ ) FROMLINE (From\ .*\n) HEADERNAME ([A-Za-z0-9-]*:\ ) CONTINUATION (\t.*\n) LINE (.*\n) EMPTY_LINE (\n) %% {FROMLINE} { strtok(yytext, "\n"); debug(2, "fromline: %s\n", yytext); BEGIN INITIAL; yylval.string = yytext; return FROMLINE; }
{FROM} { BEGIN INITIAL; REJECT; } {LINE} { debug(2, "body line: %s\n", yytext); yylval.string = yytext; return LINE; } {HEADERNAME} { debug(2, "header: %s\n", yytext); BEGIN HEADER; strtok(yytext, ":"); yylval.string = yytext; return HEADERNAME; }