%{
#include<stdio.h>
int
op=0,id
=0,flag
=0,p
=0;%}
%%
"(" {p++;}
")" {if(p>0){
p--;
}
else{
flag=1;
}}
[0-9]+ {id++; printf("%s is an identifier\n",yytext);}
[+*] {op++; printf
("
%s is an operator \n",yytext);} . {flag=1; printf("%s is a chracter \n",yytext);}
%%
int main(){
printf("Enter an expression");
yylex();
if
(id
==op+1 && p
==0 && flag
==0){ printf("Valid expreesion");
printf
("
Number of Identifiers
%d \n No of operator %d\n",id,op); }
else{
printf("Invalid expression");
}
}
JXsKICAjaW5jbHVkZTxzdGRpby5oPgogIGludCBvcD0wLGlkPTAsZmxhZz0wLHA9MDsKJX0KJSUKIigiIHtwKys7fQoiKSIge2lmKHA+MCl7CiAgcC0tOwp9CmVsc2V7CiAgZmxhZz0xOwp9fQpbMC05XSsge2lkKys7IHByaW50ZigiJXMgaXMgYW4gaWRlbnRpZmllclxuIix5eXRleHQpO30KWysqXSB7b3ArKzsgcHJpbnRmKCIlcyBpcyBhbiBvcGVyYXRvciBcbiIseXl0ZXh0KTt9Ci4ge2ZsYWc9MTsgcHJpbnRmKCIlcyBpcyBhIGNocmFjdGVyIFxuIix5eXRleHQpO30KJSUKCmludCBtYWluKCl7CiAgcHJpbnRmKCJFbnRlciBhbiBleHByZXNzaW9uIik7CiAgeXlsZXgoKTsKICAKICBpZihpZD09b3ArMSAmJiBwPT0wICYmIGZsYWc9PTApewogICAgcHJpbnRmKCJWYWxpZCBleHByZWVzaW9uIik7CiAgICBwcmludGYoIk51bWJlciBvZiBJZGVudGlmaWVycyAlZCBcbiBObyBvZiBvcGVyYXRvciAlZFxuIixpZCxvcCk7CiAgfQogIGVsc2V7CiAgICBwcmludGYoIkludmFsaWQgZXhwcmVzc2lvbiIpOwogIH0KfQ==