Thursday, July 14, 2011

Check for keywords, identifiers, numbers and operators

Share Orkut
%{
#include <stdio.h>
char output[500];
%}
digit [0-9]+
flot [0-9]*"."[0-9]+
key "int"|"float"|"while"|"if"|"printf"
id [a-zA-Z][a-zA-Z0-9]*
op "+"|"-"|"*"|"/"|"%"|"=="|">"|">="|"="
err [0-9][a-zA-Z0-9]*
%%
{digit} { sprintf(output,"%snumber ",output); }
{flot} { sprintf(output,"%sflonumber ",output); }
{key} { sprintf(output,"%skeyword ",output); }
{id} { sprintf(output,"%sidentifier ",output); }
{op} { sprintf(output,"%soperator ",output); }
{err} { sprintf(output,"%sinvalid ",output); }
[ \t\n{}();:,]+ { sprintf(output,"%s%s",output,yytext); }
%%
int main()
{
    char inp[20];
    printf("Enter the input file name ");
    scanf("%s",inp);
    yyin=fopen(inp,"r");
    yylex();
    printf("%s",output);
}
int yywrap()
{
    return 1;
}

No comments:

Post a Comment