static char *sccsid
= "@(#)parser5.c 3.2 84/01/13";
register struct value
*v
;
return p_expr12(v
, flag
);
if (p_expr11(v
, flag
) < 0)
if (op
== T_DOLLAR
&& (v
->v_str
= str_itoa(v
->v_num
)) == 0) {
p_error("Numeric value required for %s.", opname
);
if ((r
= var_lookup(v
->v_str
)) == 0) {
p_error("%s: Undefined variable.", v
->v_str
);
&& (v
->v_str
= str_cpy(v
->v_str
)) == 0) {
* string, number, ( expr )
* Also we map % into string.
* Always return v_type == V_ERR when flag == 0.
register struct value
*v
;
error("expr12: %d.", flag
);
error("expr12: NUM %d.", token_num
);
error("expr12: STR %s.", token_str
);
if (p_expr(v
, flag
) < 0) {
error("expr12: token %d.", token
);
if ((cmd
= str_itoa(v
->v_num
)) == 0) {
error("expr12: function %s.", cmd
);
if (p_function(cmd
, v
, flag
) < 0) {