static char sccsid
[] = "@(#)parser3.c 3.5 %G%";
* Copyright (c) 1983 Regents of the University of California,
* All rights reserved. Redistribution permitted subject to
* the terms of the Berkeley Software License Agreement.
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)