About

Kannur University btech CSE study materials, question papers, syllabus . . .

Saturday, June 8, 2013

S6 CSE COMPILERLAB : LEXICAL ANALYZER FOR C PROGRAMMING LANGUAGE


           /*    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