1 /* PSPP - computes sample statistics.
2 Copyright (C) 2004 Free Software Foundation, Inc.
3 Written by Ben Pfaff <blp@gnu.org>.
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License as
7 published by the Free Software Foundation; either version 2 of the
8 License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
30 cmd_debug_evaluate (void)
32 struct expression *expr;
34 enum expr_type expr_flags;
40 if (lex_match_id ("NOOPTIMIZE"))
41 expr_flags |= EXPR_NO_OPTIMIZE;
42 if (lex_match_id ("POSTFIX"))
46 lex_force_match ('/');
49 fprintf (stderr, "%s => ", lex_rest_of_line (NULL));
52 expr = expr_parse (EXPR_ANY | expr_flags);
53 if (!expr || token != '.')
55 fprintf (stderr, "error\n");
60 expr_debug_print_postfix (expr);
63 expr_evaluate (expr, NULL, 0, &value);
64 switch (expr_get_type (expr))
67 if (value.f == SYSMIS)
68 fprintf (stderr, "sysmis\n");
70 fprintf (stderr, "%.2f\n", value.f);
74 if (value.f == SYSMIS)
75 fprintf (stderr, "sysmis\n");
76 else if (value.f == 0.0)
77 fprintf (stderr, "false\n");
79 fprintf (stderr, "true\n");
84 fwrite (value.c + 1, value.c[0], 1, stderr);
85 fputs ("\"\n", stderr);