25 |
#include "config.h" |
#include "config.h" |
26 |
#include <stdbool.h> |
#include <stdbool.h> |
27 |
#include "format.h" |
#include "format.h" |
28 |
|
#include "missing-values.h" |
29 |
#include "val.h" |
#include "val.h" |
30 |
|
|
|
|
|
|
|
|
31 |
/* Script variables. */ |
/* Script variables. */ |
32 |
|
|
33 |
/* Variable type. */ |
/* Variable type. */ |
38 |
(STRING is pre-empted by lexer.h.) */ |
(STRING is pre-empted by lexer.h.) */ |
39 |
}; |
}; |
40 |
|
|
|
/* Types of missing values. Order is significant, see |
|
|
mis-val.c:parse_numeric(), sfm-read.c, sfm-write.c, |
|
|
sysfile-info.c:cmd_sysfile_info(), mis-val.c:copy_missing_values(), |
|
|
pfm-read.c:read_variables(), pfm-write.c:write_variables(), |
|
|
apply-dict.c:cmd_apply_dictionary(), and more (?). */ |
|
|
enum |
|
|
{ |
|
|
MISSING_NONE, /* No user-missing values. */ |
|
|
MISSING_1, /* One user-missing value. */ |
|
|
MISSING_2, /* Two user-missing values. */ |
|
|
MISSING_3, /* Three user-missing values. */ |
|
|
MISSING_RANGE, /* [a,b]. */ |
|
|
MISSING_LOW, /* (-inf,a]. */ |
|
|
MISSING_HIGH, /* (a,+inf]. */ |
|
|
MISSING_RANGE_1, /* [a,b], c. */ |
|
|
MISSING_LOW_1, /* (-inf,a], b. */ |
|
|
MISSING_HIGH_1, /* (a,+inf), b. */ |
|
|
MISSING_COUNT |
|
|
}; |
|
|
|
|
|
|
|
41 |
/* A variable's dictionary entry. */ |
/* A variable's dictionary entry. */ |
42 |
struct variable |
struct variable |
43 |
{ |
{ |
53 |
int index; /* Dictionary index. */ |
int index; /* Dictionary index. */ |
54 |
|
|
55 |
/* Missing values. */ |
/* Missing values. */ |
56 |
int miss_type; /* One of the MISSING_* constants. */ |
struct missing_values miss; /* Missing values. */ |
|
union value missing[3]; /* User-missing value. */ |
|
57 |
|
|
58 |
/* Display formats. */ |
/* Display formats. */ |
59 |
struct fmt_spec print; /* Default format for PRINT. */ |
struct fmt_spec print; /* Default format for PRINT. */ |
155 |
|
|
156 |
void cancel_temporary (void); |
void cancel_temporary (void); |
157 |
|
|
|
/* Functions. */ |
|
|
|
|
158 |
struct ccase; |
struct ccase; |
159 |
void dump_split_vars (const struct ccase *); |
void dump_split_vars (const struct ccase *); |
|
typedef int (* is_missing_func )(const union value *, const struct variable *); |
|
|
|
|
|
int is_num_user_missing (double, const struct variable *); |
|
|
int is_str_user_missing (const unsigned char[], const struct variable *); |
|
|
int is_missing (const union value *, const struct variable *); |
|
|
int is_system_missing (const union value *, const struct variable *); |
|
|
int is_user_missing (const union value *, const struct variable *); |
|
|
void copy_missing_values (struct variable *dest, const struct variable *src); |
|
160 |
|
|
161 |
/* Transformations. */ |
/* Transformations. */ |
162 |
|
|