8. Lex program to recognize a valid arithmetic expression

 

Lex program to recognize a valid arithmetic expression

//Lex program to recognize a valid arithmetic expression.
%{#include<stdio.h>
int a=0,b=0,c=0,d=0,ob=0,cb=0;
int flaga=0,flagb=0,flagc=0,flagd=0;
%}

%%
[a-zA-z]+ printf("\n %s is an identifier\n",yytext);
[+] {a++;flaga=1;}
[-] {b++;flagb=1;}
[*] {c++;flagc=1;}
[/] {d++;flagd=1;}
[(] ob++;
[)] cb++;
%%

main()
{
printf("Enter expression:");
yylex();
if(ob==cb)
printf("\nvalid expression\n");
else
printf("invalid expression\n");
printf("Addition=%d\tSubtract=%d\nMultiply=%d\tDivide=%d\n",a,b,c,d);
printf("\n Operators used:\n");
if(flaga==1)
printf("+\t");
if (flagb==1)
printf("-\t");
if(flagc==1)
printf("*\t");
if(flagd==1)
printf("/\n");
}

// Output of the above program  
Lex program to recognize a valid arithmetic expression.
Lex program to recognize a valid arithmetic expression.

Comments

Popular posts from this blog

Compiler Design

7. Lex specification program that generates a C program which takes a string “abcd” and prints the pattern

10. Program in YACC to recognize the string „abbb^n, „ab^n „a^n of the langauge (a^n b^n , n>=1)