%{
#include<stdio.h>
#include<string.h>
int flag=0,i=0,j,k=0;
char operand[20][20],oparator[20][20];
%}
%%
[a-zA-Z0-9]+ {flag++; strcpy(operand[i],yytext); i++;}
[-+*/] {flag--; strcpy(oparator[k],yytext); k++;}
%%
int main(int argc, char* argv[])
{
printf("enter an arithmetic expression\n");
yylex();
if(flag!=1)
printf("Invalid expression\n");
else
{
printf("Valid expression\n");
printf("The operands are\t");
for(j=0;j<i;j++)
printf("%s\t",operand[j]);
printf("\nThe operators are\t");
for(j=0;j<k;j++)
printf("%s\t",oparator[j]);
printf("\n");
}
}
int yywrap( )
{
return 1;
}
JXsKI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CmludCBmbGFnPTAsaT0wLGosaz0wOwpjaGFyIG9wZXJhbmRbMjBdWzIwXSxvcGFyYXRvclsyMF1bMjBdOwolfQoKJSUKW2EtekEtWjAtOV0rICB7ZmxhZysrOyBzdHJjcHkob3BlcmFuZFtpXSx5eXRleHQpOyAgaSsrO30KWy0rKi9dCXtmbGFnLS07ICBzdHJjcHkob3BhcmF0b3Jba10seXl0ZXh0KTsgICAgaysrO30KJSUKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKCXByaW50ZigiZW50ZXIgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uXG4iKTsKCXl5bGV4KCk7CgkKCWlmKGZsYWchPTEpCgkJcHJpbnRmKCJJbnZhbGlkIGV4cHJlc3Npb25cbiIpOwoJZWxzZQoJewoJCXByaW50ZigiVmFsaWQgZXhwcmVzc2lvblxuIik7CgkJCgkJcHJpbnRmKCJUaGUgb3BlcmFuZHMgYXJlXHQiKTsKCQlmb3Ioaj0wO2o8aTtqKyspCgkJCXByaW50ZigiJXNcdCIsb3BlcmFuZFtqXSk7CgkJCQoJCXByaW50ZigiXG5UaGUgb3BlcmF0b3JzIGFyZVx0Iik7CgkJZm9yKGo9MDtqPGs7aisrKQoJCQlwcmludGYoIiVzXHQiLG9wYXJhdG9yW2pdKTsKCQkJCgkJcHJpbnRmKCJcbiIpOwoJfQp9CgppbnQgeXl3cmFwKCApCnsKCXJldHVybiAxOwp9