%{
#include<stdio.h> #include<ctype.h> #define YYSTYPE double
%}
%token num
%left '+' '-'
%left '*' '/'
%right UMINUS
%%
lines:
|lines
exp '\n' {printf
("
%g\n",$2); return 1;} |lines '\n'
;
{
printf("Divide by zero error\n"); exit(0);
}
$$=$1/$3;
}
|num;
%%
int yylex()
{
int c; while((c=getchar())==' ');
if((c=='.')||(isdigit(c)))
{
ungetc(c,stdin); scanf("%lf",&yylval); return num;
}
return c;
}
int main()
{
yyparse(); return 0;
}
int yyerror()
{
printf("Error\n"); return 0;
}
JXsKI2luY2x1ZGU8c3RkaW8uaD4gI2luY2x1ZGU8Y3R5cGUuaD4gI2RlZmluZSBZWVNUWVBFIGRvdWJsZQolfQoldG9rZW4gbnVtCiVsZWZ0ICcrJyAnLScKJWxlZnQgJyonICcvJwolcmlnaHQgVU1JTlVTCiUlCmxpbmVzOgp8bGluZXMgZXhwICdcbicge3ByaW50ZigiJWdcbiIsJDIpOyByZXR1cm4gMTt9CnxsaW5lcyAnXG4nCjsKZXhwOmV4cCcrJ2V4cCB7JCQ9JDErJDM7fQp8ZXhwJy0nZXhwIHskJD0kMS0kMzt9CnxleHAnKidleHAgeyQkPSQxKiQzO30KfGV4cCcvJ2V4cCB7aWYoJDM9PTApCnsKcHJpbnRmKCJEaXZpZGUgYnkgemVybyBlcnJvclxuIik7IGV4aXQoMCk7Cn0KJCQ9JDEvJDM7Cn0KfCcoJ2V4cCcpJyB7JCQ9JDI7fQogICB8Jy0nZXhwIHskJD0tJDI7fQogIHxudW07CiUlCmludCB5eWxleCgpCnsKaW50IGM7IHdoaWxlKChjPWdldGNoYXIoKSk9PScgJyk7CmlmKChjPT0nLicpfHwoaXNkaWdpdChjKSkpCnsKdW5nZXRjKGMsc3RkaW4pOyBzY2FuZigiJWxmIiwmeXlsdmFsKTsgcmV0dXJuIG51bTsKfQpyZXR1cm4gYzsKfQppbnQgbWFpbigpCnsKeXlwYXJzZSgpOyByZXR1cm4gMDsKfQppbnQgeXllcnJvcigpCnsKcHJpbnRmKCJFcnJvclxuIik7IHJldHVybiAwOwp9