%s NORMAL %o 6000 %{ /* * $Header$ * * Filter to add vile "attribution" sequences to a mCRL(2) specification * or model, based on the text filter. * * By Paul van Tilburg and Bas Kloet . */ #include DefineFilter("mcrl"); static char *Comment_attr; static char *Keyword_attr; static char *Number_attr; %} COMMENT %.*\n KEYWORD [[:alpha:]_][[:alnum:]_]* SIGN [-+] DECIMAL [[:digit:]_]+ REAL [-+]?([[:digit:]_]*\.[[:digit:]][[:digit:]_]*)([eE][+-]?[[:digit:]_]+)? NUMBER {SIGN}?({DECIMAL}|{REAL}) %% {KEYWORD} { WriteToken(keyword_attr(yytext)); } {COMMENT} { WriteToken(Comment_attr); } {NUMBER} { WriteToken(Number_attr); } %% static void init_filter(int before GCC_UNUSED) { (void) before; } static void do_filter(FILE *inputs) { yyin = inputs; Comment_attr = class_attr(NAME_COMMENT); Keyword_attr = class_attr(NAME_KEYWORD); Number_attr = class_attr(NAME_NUMBER); BEGIN(NORMAL); while (yylex() > 0) { } flt_bfr_finish(); }