Lines Matching refs:exp
64 validate_expr(struct expression *exp, int val1_is_set, int op_is_set, int val2_is_set, in validate_expr() argument
80 if (exp == NULL) { in validate_expr()
88 switch(exp->type) { in validate_expr()
108 if (exp->next == NULL) { in validate_expr()
112 if ((exp->next->type == TYPE_OP_PLUS) || in validate_expr()
113 (exp->next->type == TYPE_OP_MINUS) || in validate_expr()
114 (exp->next->type == TYPE_OP_DIVIDE) || in validate_expr()
115 (exp->next->type == TYPE_OP_MULT)) { in validate_expr()
130 if (validate_expr(exp->next, 0, 0, 0, op_cnt) == 0) { in validate_expr()
136 return(validate_expr(exp->next, 0, 0, 0, op_cnt)); in validate_expr()
161 printf("unknown type %d\n", exp->type); in validate_expr()
165 return(validate_expr(exp->next, val1, op, val2, op_cnt)); in validate_expr()
169 print_exp(struct expression *exp) in print_exp() argument
171 if (exp == NULL) { in print_exp()
175 switch(exp->type) { in print_exp()
195 printf("%f", exp->value); in print_exp()
198 printf("%s", exp->name); in print_exp()
201 printf("Unknown op %d\n", exp->type); in print_exp()
204 print_exp(exp->next); in print_exp()
350 set_math_precidence(struct expression **beg, struct expression *exp, struct expression **stopped) in set_math_precidence() argument
359 start = at = exp; in set_math_precidence()
426 struct expression *exp=NULL, *last=NULL, *at; in parse_expression() local
471 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
474 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
483 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
486 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
489 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
492 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
496 at = alloc_and_hook_expr(&exp, &last); in parse_expression()
534 if (validate_expr(exp, 0, 0, 0, &op_cnt)) { in parse_expression()
538 set_math_precidence(&exp, exp, NULL); in parse_expression()
539 return (exp); in parse_expression()
545 gather_exp_to_paren_close(struct expression *exp, double *val_fill) in gather_exp_to_paren_close() argument
558 if (exp->type == TYPE_PARN_OPEN) { in gather_exp_to_paren_close()
559 lastproc = gather_exp_to_paren_close(exp->next, &val); in gather_exp_to_paren_close()
562 *val_fill = run_expr(exp, 0, &lastproc); in gather_exp_to_paren_close()
569 run_expr(struct expression *exp, int initial_call, struct expression **lastone) in run_expr() argument
582 if (exp->type == TYPE_PARN_OPEN) { in run_expr()
583 op = gather_exp_to_paren_close(exp->next, &val1); in run_expr()
584 } else if(exp->type == TYPE_VALUE_CON) { in run_expr()
585 val1 = exp->value; in run_expr()
586 op = exp->next; in run_expr()
587 } else if (exp->type == TYPE_VALUE_PMC) { in run_expr()
588 val1 = exp->value; in run_expr()
589 op = exp->next; in run_expr()
670 calc_expr(struct expression *exp) in calc_expr() argument
676 for(at = exp; at != NULL; at = at->next) { in calc_expr()
682 for(at = exp; at != NULL; at = at->next) { in calc_expr()
693 print_exp(exp); in calc_expr()
694 xx = run_expr(exp, 1, NULL); in calc_expr()
703 struct expression *exp; in main() local
708 exp = parse_expression(argv[1]); in main()
710 calc_expr(exp); in main()