/* LEXICAL ANALYZER FOR C PROGRAMMING LANGUAGE */
letter[a-zA-Z]
digit[0-9]
%%
{digit}+("E"("+"|"-")?{digit}+)? printf("\n%s\t is real number",yytext);
{digit}+"."{digit}+("E"("+"|"-")?{digit}+)? printf("\n%s\t is a floating point number",yytext);
"if"|"else"|"int"|"float"|"switch"|"case"|"main"|"struct"|"char"|"return"|"for"|"do"|"while"|"void"|"printf"|"scanf" printf("\n%s\t is a keyword",yytext);
"\t"|"\b"|"\\n"|"\\t"|"\\a"|"\\b"|"\a" printf("\n%s\t is an escape sequence",yytext);
{letter}({letter}|{digit})* printf("\n%s\t is an identifier",yytext);
"["|"]"|"{"|"}"|"("|")"|"#"|","|"."|":"|";"|"_"|"\"" printf("\n%s\t is a special character",yytext);
"&&"|"<"|">"|"="|"<="|">="|"+"|"^"|"-"|"*"|"/"|"||"|"?"|"&"|"%" printf("\n%s\t is an operator",yytext);
"%d"|"%s"|"%c"|"%f"|"%e" printf("\n%s\t is a format specifier",yytext);
%%
int yywrap()
{
return 1;
}
int main(int argc,char *argv[])
{
yyin=fopen(argv[1],"r");
yylex();
fclose(yyin);
return 0;
}
INPUT PROGRAM
#include<stdio.h>
void main()
{
int a,b,s=0;
printf("Enter 2 numbers\n");
scanf("%d %d",&a,&b);
s=a+b;
printf("SUM=%d\n",s);
}
OUTPUT
# is a special character
include is an identifier
< is an operator
stdio is an identifier
. is a special character
h is an identifier
> is an operator
void is a keyword
main is a keyword
( is a special character
) is a special character
{ is a special character
int is a keyword
a is an identifier
, is a special character
b is an identifier
, is a special character
s is an identifier
= is an operator
0 is real number
; is a special character
printf is a keyword
( is a special character
" is a special character
Enter is an identifier
2 is real number
numbers is an identifier
\n is an escape sequence
" is a special character
) is a special character
; is a special character
scanf is a keyword
( is a special character
" is a special character
%d is a format specifier
%d is a format specifier
" is a special character
, is a special character
& is an operator
a is an identifier
, is a special character
& is an operator
b is an identifier
) is a special character
; is a special character
s is an identifier
= is an operator
a is an identifier
+ is an operator
b is an identifier
; is a special character
printf is a keyword
( is a special character
" is a special character
SUM is an identifier
= is an operator
%d is a format specifier
\n is an escape sequence
" is a special character
, is a special character
s is an identifier
) is a special character
; is a special character
} is a special character






0 comments:
Post a Comment