SCCS-vsn: bin/expr/expr.y 5.2
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)expr.y 5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)expr.y 5.2 (Berkeley) %G%";
#endif /* not lint */
#include <stdio.h>
#endif /* not lint */
#include <stdio.h>
case ADD: i1 = i1 + i2; break;
case SUBT: i1 = i1 - i2; break;
case MULT: i1 = i1 * i2; break;
case ADD: i1 = i1 + i2; break;
case SUBT: i1 = i1 - i2; break;
case MULT: i1 = i1 * i2; break;
- case DIV: i1 = i1 / i2; break;
- case REM: i1 = i1 % i2; break;
+ case DIV:
+ if (i2 != 0)
+ i1 = i1 / i2;
+ else
+ yyerror("Divide by zero");
+ break;
+ case REM:
+ if (i2 != 0)
+ i1 = i1 % i2;
+ else
+ yyerror("Remainder by zero");
+ break;
}
rv = malloc(16);
(void)sprintf(rv, "%ld", i1);
}
rv = malloc(16);
(void)sprintf(rv, "%ld", i1);