wc.leg 425 B

1234567891011121314151617181920212223
  1. %{
  2. #include <stdio.h>
  3. int lines= 0, words= 0, chars= 0;
  4. %}
  5. start = (line | word | char)
  6. line = < (( '\n' '\r'* ) | ( '\r' '\n'* )) > { lines++; chars += yyleng; }
  7. word = < [a-zA-Z]+ > { words++; chars += yyleng; printf("<%s>\n", yytext); }
  8. char = . { chars++; }
  9. %%
  10. int main()
  11. {
  12. while (yyparse())
  13. ;
  14. printf("%d lines\n", lines);
  15. printf("%d chars\n", chars);
  16. printf("%d words\n", words);
  17. return 0;
  18. }