Program 3
Program 3
#include <stdio.h>
#include <string.h>
int tokenCount = 0;
void incrementTokenCount() {
tokenCount++;
}
%}
%option noyywrap
%%
[ \t\n]+ { /* Ignore whitespace */ }
"if" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"else" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"while" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"do" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"break" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"continue" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"return" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"int" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"float" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"double" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
"char" { incrementTokenCount(); printf("KEYWORD: %s\n",
yytext); }
[0-9]+ { incrementTokenCount(); printf("INTEGER: %s\n",
yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { incrementTokenCount(); printf("IDENTIFIER: %s\n",
yytext); }
"+" { incrementTokenCount(); printf("OPERATOR: +\n"); }
"-" { incrementTokenCount(); printf("OPERATOR: -\n"); }
"*" { incrementTokenCount(); printf("OPERATOR: *\n"); }
"/" { incrementTokenCount(); printf("OPERATOR: /\n"); }
"=" { incrementTokenCount(); printf("OPERATOR: =\n"); }
"==" { incrementTokenCount(); printf("OPERATOR: ==\n"); }
">" { incrementTokenCount(); printf("OPERATOR: >\n"); }
"<" { incrementTokenCount(); printf("OPERATOR: <\n"); }
";" { incrementTokenCount(); printf("SEMI-COLON: ;\n"); }
"(" { incrementTokenCount(); printf("LEFT PARENTHESIS: (\
n"); }
")" { incrementTokenCount(); printf("RIGHT PARENTHESIS: )\n");
}
"{" { incrementTokenCount(); printf("LEFT BRACE: {\n"); }
"}" { incrementTokenCount(); printf("RIGHT BRACE: }\n"); }
. { incrementTokenCount(); printf("UNKNOWN: %s\n",
yytext); }
%%
yyin = inputFile;
yylex();