%{
%}
dig [0-9]+|([0-9]*)"."([0-9]+)
add "+"
sub "-"
mul "*"
div "/"
pow "^"
ln \n
%%
{dig} {digi();} /*** digi() is a user defined function ***/
{ln} {printf("\n the result :%f\n\n",a);}
%%
digi()
{
a=atof(yytext); /*** atof() is used to convert the ASCII input to float***/
else
{
b=atof(yytext);
{
case 1:a=a+b;
break;
case 2:a=a-b;
break;
case 3:a=a*b;
break;
case 4:a=a/b;
break;
case 5:for(i=a;b>1;b--)
a=a*i;
break;
}
}
}
main(int argv,char *argc[])
{
yylex();
}
yywrap()
{
return 1;
}
JXsKaW50IG9wPTAsaTsKZmxvYXQgYSxiOwolfQoKZGlnIFswLTldK3woWzAtOV0qKSIuIihbMC05XSspCmFkZCAiKyIKc3ViICItIgptdWwgIioiCmRpdiAiLyIKcG93ICJeIgpsbiBcbgoKJSUKe2RpZ30ge2RpZ2koKTt9IC8qKiogZGlnaSgpIGlzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uICoqKi8Ke2FkZH0ge29wPTE7fQp7c3VifSB7b3A9Mjt9CnttdWx9IHtvcD0zO30Ke2Rpdn0ge29wPTQ7fQp7cG93fSB7b3A9NTt9Cntsbn0ge3ByaW50ZigiXG4gdGhlIHJlc3VsdCA6JWZcblxuIixhKTt9CgolJQpkaWdpKCkKewppZihvcD09MCkKYT1hdG9mKHl5dGV4dCk7IC8qKiogYXRvZigpIGlzIHVzZWQgdG8gY29udmVydCB0aGUgQVNDSUkgaW5wdXQgdG8gZmxvYXQqKiovCmVsc2UKewpiPWF0b2YoeXl0ZXh0KTsKc3dpdGNoKG9wKQp7CmNhc2UgMTphPWErYjsKYnJlYWs7CmNhc2UgMjphPWEtYjsKYnJlYWs7CmNhc2UgMzphPWEqYjsKYnJlYWs7CmNhc2UgNDphPWEvYjsKYnJlYWs7CmNhc2UgNTpmb3IoaT1hO2I+MTtiLS0pCmE9YSppOwpicmVhazsKfQpvcD0wOwp9Cn0KbWFpbihpbnQgYXJndixjaGFyICphcmdjW10pCnsKeXlsZXgoKTsKfQp5eXdyYXAoKQp7CnJldHVybiAxOwp9