Lines Matching refs:expr
60 static int eval_expr (char *expr, long int *result);
541 eval_expr_val (char **expr, long int *result) in eval_expr_val() argument
546 for (digit = *expr; digit && *digit && isspace (*digit); ++digit); in eval_expr_val()
551 for (++digit; **expr && **expr != ')'; ++(*expr)); in eval_expr_val()
554 if (!**expr) in eval_expr_val()
557 *(*expr)++ = 0; in eval_expr_val()
567 *result = strtol (digit, expr, 0); in eval_expr_val()
568 if (digit == *expr) in eval_expr_val()
575 eval_expr_multdiv (char **expr, long int *result) in eval_expr_multdiv() argument
580 if (eval_expr_val (expr, result) != 0) in eval_expr_multdiv()
583 while (**expr) in eval_expr_multdiv()
586 for (; *expr && **expr && isspace (**expr); ++(*expr)); in eval_expr_multdiv()
588 if (**expr == '*') in eval_expr_multdiv()
590 ++(*expr); in eval_expr_multdiv()
591 if (eval_expr_val (expr, &arg) != 0) in eval_expr_multdiv()
596 else if (**expr == '/') in eval_expr_multdiv()
598 ++(*expr); in eval_expr_multdiv()
599 if (eval_expr_val (expr, &arg) != 0) in eval_expr_multdiv()
615 eval_expr (char *expr, long int *result) in eval_expr() argument
620 if (eval_expr_multdiv (&expr, result) != 0) in eval_expr()
623 while (*expr) in eval_expr()
626 for (; expr && *expr && isspace (*expr); ++expr); in eval_expr()
628 if (*expr == '+') in eval_expr()
630 ++expr; in eval_expr()
631 if (eval_expr_multdiv (&expr, &arg) != 0) in eval_expr()
636 else if (*expr == '-') in eval_expr()
638 ++expr; in eval_expr()
639 if (eval_expr_multdiv (&expr, &arg) != 0) in eval_expr()
659 char *expr; in parse_arith() local
661 expr = w_newword (&expr_length, &expr_maxlen); in parse_arith()
667 error = parse_dollars (&expr, &expr_length, &expr_maxlen, in parse_arith()
674 free (expr); in parse_arith()
681 error = parse_backtick (&expr, &expr_length, &expr_maxlen, in parse_arith()
688 free (expr); in parse_arith()
694 error = parse_qtd_backslash (&expr, &expr_length, &expr_maxlen, in parse_arith()
698 free (expr); in parse_arith()
716 free (expr); in parse_arith()
723 if (*expr && eval_expr (expr, &numresult) != 0) in parse_arith()
725 free (expr); in parse_arith()
735 free (expr); in parse_arith()
745 free (expr); in parse_arith()
748 expr = w_addchar (expr, &expr_length, &expr_maxlen, words[*offset]); in parse_arith()
749 if (expr == NULL) in parse_arith()
761 if (*expr && eval_expr (expr, &numresult) != 0) in parse_arith()
763 free (expr); in parse_arith()
770 free (expr); in parse_arith()
774 free (expr); in parse_arith()
781 free (expr); in parse_arith()
788 expr = w_addchar (expr, &expr_length, &expr_maxlen, words[*offset]); in parse_arith()
789 if (expr == NULL) in parse_arith()
795 free (expr); in parse_arith()