X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdo-if.c;h=d7e80e5cdcc04fd49897325abfb13b5ed18dd1ce;hb=8b69708cde1b56b7abb5fe989863ad87f586a69c;hp=6f9aa507ed5ecada4516e8a13622df036f5fa103;hpb=97d6c6f6b1922621ca013668eba9a9a9f71d60fe;p=pspp-builds.git diff --git a/src/do-if.c b/src/do-if.c index 6f9aa507..d7e80e5c 100644 --- a/src/do-if.c +++ b/src/do-if.c @@ -24,17 +24,13 @@ #include "alloc.h" #include "command.h" #include "error.h" -#include "expr.h" +#include "expressions/public.h" #include "lexer.h" #include "str.h" #include "var.h" #include "debug-print.h" -#if DEBUGGING -#include -#endif - /* *INDENT-OFF* */ /* Description of DO IF transformations: @@ -248,7 +244,7 @@ parse_do_if (void) struct do_if_trns *t; struct expression *e; - e = expr_parse (EXPR_BOOLEAN); + e = expr_parse (default_dict, EXPR_BOOLEAN); if (!e) return NULL; if (token != '.') @@ -280,15 +276,15 @@ do_if_trns_proc (struct trns_header * trns, struct ccase * c, int case_num UNUSED) { struct do_if_trns *t = (struct do_if_trns *) trns; - union value bool; + double boolean; - expr_evaluate (t->cond, c, case_num, &bool); - if (bool.f == 1.0) + boolean = expr_evaluate_num (t->cond, c, case_num); + if (boolean == 1.0) { debug_printf ((_("DO IF %d: true\n"), t->h.index)); return -1; } - else if (bool.f == 0.0) + else if (boolean == 0.0) { debug_printf ((_("DO IF %d: false\n"), t->h.index)); return t->false_jump;