* Copyright (c) 1983 Regents of the University of California.
* This code is derived from software contributed to Berkeley by
* Edward Wang at The University of California, Berkeley.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)parser3.c 3.9 (Berkeley) %G%";
register struct value
*v
;
if (p_expr0(&t
, flag
) < 0)
p_error("%d: Not a variable.", t
.v_num
);
ret
= p_assign(t
.v_str
, v
, flag
);
register struct value
*v
;
if (p_expr1(v
, flag
) < 0)
p_error("?: Numeric left operand required.");
if ((flag
&& true ? p_expr1(v
, 1) : p_expr1(&t
, 0)) < 0)
return flag
&& !true ? p_expr1(v
, 1) : p_expr1(&t
, 0);
register struct value
*v
;
if (p_expr2(v
, flag
) < 0)
v
->v_num
= true = true || v
->v_num
!= 0;
p_error("||: Numeric operands required.");
if (p_expr2(v
, flag
&& !true) < 0)
register struct value
*v
;
if (p_expr3_10(3, v
, flag
) < 0)
v
->v_num
= true = true && v
->v_num
!= 0;
p_error("&&: Numeric operands required.");
if (p_expr3_10(3, v
, flag
&& true) < 0)