tmp.data.constant.value = v;
rtmp = *x;
rtmp.data.constant.value = r;
- if (!ex->disc->binaryf(ex, &tmp, expr, &rtmp, 0, ex->disc))
+ if (!ex->disc->binaryf(&tmp, expr, &rtmp, 0))
return tmp.data.constant.value;
}
}
rp = &rtmp;
} else
rp = 0;
- if (!ex->disc->binaryf(ex, &tmp, expr, rp, 0, ex->disc))
+ if (!ex->disc->binaryf(&tmp, expr, rp, 0))
return tmp.data.constant.value;
}
goto integer;
static void
checkBinary(Expr_t * p, Exnode_t * l, Exnode_t * ex, Exnode_t * r)
{
- if ((*p->disc->binaryf) (p, l, ex, r, 1, p->disc) < 0) {
+ if ((*p->disc->binaryf) (l, ex, r, 1) < 0) {
if (r)
exerror
("cannot apply operator %s to expressions of types %s and %s",
/* unknown cast function */
int (*convertf)(Exnode_t*, int, int);
/* type conversion function */
- int (*binaryf) (Expr_t *, Exnode_t *, Exnode_t *, Exnode_t *, int, Exdisc_t *);
+ int (*binaryf) (Exnode_t *, Exnode_t *, Exnode_t *, int);
/* binary operator function */
char* (*typename) (Expr_t *, int);
/* application type names */
* Return -1 if operation cannot be done, 0 otherwise.
* If arg is > 0, operation unnecessary; just report possibility.
*/
-static int
-binary(Expr_t * pg, Exnode_t * l, Exnode_t * ex, Exnode_t * r, int arg,
- Exdisc_t * disc)
-{
- (void)pg;
- (void)disc;
-
+static int binary(Exnode_t * l, Exnode_t * ex, Exnode_t * r, int arg) {
Agobj_t *lobjp;
Agobj_t *robjp;
int ret = -1;