X-Git-Url: http://git.ieval.ro/?p=filters.git;a=blobdiff_plain;f=nyc.l;h=ddc5dbeaa5142e9434d357aaf90e72347a4ab022;hp=8505c1652ab79b3e21793130e5aad149db369104;hb=HEAD;hpb=7e3afbbacdd24f8c3fb87599eeda32b977fe6d6c diff --git a/nyc.l b/nyc.l index 8505c16..ddc5dbe 100644 --- a/nyc.l +++ b/nyc.l @@ -11,6 +11,13 @@ BW [ \t] SP [ \t] EW [ \t.,;!\?$] + +%{ + void plastc(void); + char caseify(char); + void expletive(void); +%} + %% ".so ".*$ printf("%s", yytext); [ao]ther printf("%cdder", yytext[0]=='a'?'a':'u'); @@ -66,12 +73,13 @@ negro printf("spade"); ! printf("! Okay?"); [a-z]"." { printf("%s", yytext);expletive();} %% -plastc() + +void plastc() { - unput(yytext[yyleng-1]); + yyunput(yytext[yyleng-1], yytext); } -caseify(c) +char caseify(c) char c; { if (yytext[0] <= 'Z') @@ -83,7 +91,7 @@ char c; short count = 0; short which = 0; -expletive() +void expletive() { if (count++ % 4 == 0) { switch (which++ % 5) { @@ -95,3 +103,8 @@ expletive() } } } + +int yywrap() +{ + return 1; +}