struct expression *e; /* Test expression. */
};
-static int select_if_proc (struct trns_header *, struct ccase *);
-static void select_if_free (struct trns_header *);
+static trns_proc_func select_if_proc;
+static trns_free_func select_if_free;
/* Parses the SELECT IF transformation. */
int
struct expression *e;
struct select_if_trns *t;
- lex_match_id ("SELECT");
- lex_match_id ("IF");
-
- e = expr_parse (PXP_BOOLEAN);
+ e = expr_parse (EXPR_BOOLEAN);
if (!e)
return CMD_FAILURE;
/* Performs the SELECT IF transformation T on case C. */
static int
-select_if_proc (struct trns_header * t, struct ccase * c)
+select_if_proc (struct trns_header * t, struct ccase * c,
+ int case_num)
{
- return (expr_evaluate (((struct select_if_trns *) t)->e, c, NULL) == 1.0) - 2;
+ return (expr_evaluate (((struct select_if_trns *) t)->e, c,
+ case_num, NULL) == 1.0) - 2;
}
/* Frees SELECT IF transformation T. */
int
cmd_filter (void)
{
- lex_match_id ("FILTER");
-
if (lex_match_id ("OFF"))
dict_set_filter (default_dict, NULL);
else
return CMD_FAILURE;
}
- if (v->name[0] == '#')
+ if (dict_class_from_id (v->name) == DC_SCRATCH)
{
msg (SE, _("The filter variable may not be scratch."));
return CMD_FAILURE;
{
struct expression *e;
- lex_match_id ("PROCESS");
- lex_match_id ("IF");
-
- e = expr_parse (PXP_BOOLEAN);
+ e = expr_parse (EXPR_BOOLEAN);
if (!e)
return CMD_FAILURE;