%{
#include<stdio.h>
#include<string.h>
int i=0, j=0, k=0, flag=0;
%}
%%
[0-9]+ {flag++;strcpy(id[i],yytext);i++;}
[+*] {flag
--; strcpy
(op[j
],yytext
);j
++;} .|\n {return 0;}
%%
int main(){
printf("Enter expression: ");
yylex();
if(flag!=1){
printf("Expression invalid");
}
else{
for(k=0; k<j; k++){
printf(" opperator table: ");
printf("%c \t",op[k]);
printf(" symbol table: ");
printf("%c \t",id[k]);
}
}
}
int yywrap(){
return 1;
}
JXsKICAjaW5jbHVkZTxzdGRpby5oPgogICNpbmNsdWRlPHN0cmluZy5oPgogIAogIGludCBpPTAsIGo9MCwgaz0wLCBmbGFnPTA7CiAgY2hhciBvcFsxMF0sIGlkWzEwXTsKJX0KCiUlCiAgWzAtOV0rIHtmbGFnKys7c3RyY3B5KGlkW2ldLHl5dGV4dCk7aSsrO30KICBbKypdIHtmbGFnLS07IHN0cmNweShvcFtqXSx5eXRleHQpO2orKzt9CiAgLnxcbiB7cmV0dXJuIDA7fQogIAolJQoKaW50IG1haW4oKXsKICBwcmludGYoIkVudGVyIGV4cHJlc3Npb246ICIpOwogIHl5bGV4KCk7CiAgCiAgaWYoZmxhZyE9MSl7CiAgICBwcmludGYoIkV4cHJlc3Npb24gaW52YWxpZCIpOwogIH0KICBlbHNlewogICAgZm9yKGs9MDsgazxqOyBrKyspewogICAgICAKICAgIHByaW50ZigiICBvcHBlcmF0b3IgdGFibGU6ICIpOwogICAgcHJpbnRmKCIlYyBcdCIsb3Bba10pOwogICAgcHJpbnRmKCIgIHN5bWJvbCB0YWJsZTogIik7CiAgICBwcmludGYoIiVjIFx0IixpZFtrXSk7CiAgICB9CiAgfQp9CgppbnQgeXl3cmFwKCl7CiAgcmV0dXJuIDE7IAp9Cgo=