/* PSPP - computes sample statistics.
Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
-#include "alloc.h"
-#include "calendar.h"
-#include "data-in.h"
-#include "message.h"
+#include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
+#include <data/calendar.h>
+#include <data/data-in.h>
+#include <libpspp/message.h>
#include "evaluate.h"
#include "helpers.h"
-#include "misc.h"
-#include "pool.h"
+#include <libpspp/misc.h>
+#include <libpspp/pool.h>
#include "public.h"
-#include "str.h"
-#include "variable.h"
+#include <libpspp/str.h>
+#include <data/variable.h>
static union any_node *evaluate_tree (struct composite_node *,
struct expression *);
{
int nonconst_cnt = 0; /* Number of nonconstant children. */
int sysmis_cnt = 0; /* Number of system-missing children. */
- struct operation *op;
+ const struct operation *op;
struct composite_node *c;
int i;
static double *get_number_args (struct composite_node *,
size_t arg_idx, size_t arg_cnt,
struct expression *);
-static struct fixed_string get_string_arg (struct composite_node *,
+static struct substring get_string_arg (struct composite_node *,
size_t arg_idx);
-static struct fixed_string *get_string_args (struct composite_node *,
+static struct substring *get_string_args (struct composite_node *,
size_t arg_idx, size_t arg_cnt,
struct expression *);
static const struct fmt_spec *get_format_arg (struct composite_node *,
#include "optimize.inc"
default:
- assert (0);
+ NOT_REACHED ();
}
- /* Not reached. */
- assert (0);
- abort ();
+ NOT_REACHED ();
}
static double
return d;
}
-static struct fixed_string
+static struct substring
get_string_arg (struct composite_node *c, size_t arg_idx)
{
assert (arg_idx < c->arg_cnt);
return c->args[arg_idx]->string.s;
}
-static struct fixed_string *
+static struct substring *
get_string_args (struct composite_node *c, size_t arg_idx, size_t arg_cnt,
struct expression *e)
{
- struct fixed_string *s;
+ struct substring *s;
size_t i;
s = pool_alloc (e->expr_pool, sizeof *s * arg_cnt);
}
static void
-emit_string (struct expression *e, struct fixed_string s)
+emit_string (struct expression *e, struct substring s)
{
allocate_aux (e, OP_string)->string = s;
}
}
static void
-emit_variable (struct expression *e, struct variable *v)
+emit_variable (struct expression *e, const struct variable *v)
{
allocate_aux (e, OP_variable)->variable = v;
}
break;
default:
- abort ();
+ NOT_REACHED ();
}
}
static void
flatten_composite (union any_node *n, struct expression *e)
{
- struct operation *op = &operations[n->type];
+ const struct operation *op = &operations[n->type];
size_t i;
for (i = 0; i < n->composite.arg_cnt; i++)
else if (is_composite (n->type))
flatten_composite (n, e);
else
- abort ();
+ NOT_REACHED ();
}
static union operation_data *