fork download
  1. %{
  2. #include <stdio.h>
  3.  
  4. int kw=0, id=0, num=0, op=0, punc=0;
  5. %}
  6.  
  7. %%
  8. int|float|char|if|else|while|for|return { printf("KEYWORD : %s\n", yytext); kw++; }
  9.  
  10. [a-zA-Z_][a-zA-Z0-9_]* { printf("IDENTIFIER : %s\n", yytext); id++; }
  11.  
  12. [0-9]+ { printf("NUMBER : %s\n", yytext); num++; }
  13.  
  14. ==|<=|>=|!=|\+|-|\*|/|=|<|> { printf("OPERATOR : %s\n", yytext); op++; }
  15.  
  16. [;,\(\)\{\}] { printf("PUNCTUATION : %s\n", yytext); punc++; }
  17.  
  18. [ \t\n]+ ;
  19.  
  20. . { printf("LEXICAL ERROR : Invalid symbol %s\n", yytext); }
  21. %%
  22.  
  23. int main()
  24. {
  25. yylex();
  26. printf("\nFINAL COUNT\n");
  27. printf("KEYWORD : %d\n", kw);
  28. printf("IDENTIFIER : %d\n", id);
  29. printf("NUMBER : %d\n", num);
  30. printf("OPERATOR : %d\n", op);
  31. printf("PUNCTUATION : %d\n", punc);
  32. return 0;
  33. }
  34.  
Success #stdin #stdout #stderr 0.02s 6884KB
stdin
int a = 5;
stdout
Standard output is empty
stderr
ERROR: /home/DwRZiT/prog:2:1: Syntax error: Operator expected
ERROR: /home/DwRZiT/prog:33:1: Syntax error: Unexpected end of file
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
   Exception: (3) program ? EOF: exit