-bool alignment_is_valid (enum alignment);
-
-/* How data is measured. */
-enum measure
- {
- MEASURE_NOMINAL = 1,
- MEASURE_ORDINAL = 2,
- MEASURE_SCALE = 3,
- n_MEASURES
- };
-
-bool measure_is_valid (enum measure);
-
-/* Maximum lengths of short and long variable names.
- Most operations support long variable names,
- but some file formats are limited to short names. */
-#define SHORT_NAME_LEN 8 /* Short name length. */
-#define LONG_NAME_LEN 64 /* Long name length. */
-
-/* A variable's dictionary entry. */
-struct variable
- {
- /* Dictionary information. */
- char name[LONG_NAME_LEN + 1]; /* Variable name. Mixed case. */
- int width; /* 0 for numeric, otherwise string width. */
- struct missing_values miss; /* Missing values. */
- struct fmt_spec print; /* Default format for PRINT. */
- struct fmt_spec write; /* Default format for WRITE. */
- struct val_labs *val_labs; /* Value labels. */
- char *label; /* Variable label. */
-
- /* GUI information. */
- enum measure measure; /* Nominal, ordinal, or continuous. */
- int display_width; /* Width of data editor column. */
- enum alignment alignment; /* Alignment of data in GUI. */
-
- /* Case information. */
- int fv; /* Index into `value's. */
- bool leave; /* Leave value from case to case? */
-
- /* Data for use by containing dictionary. */
- int index; /* Dictionary index. */
-
- /* Short name, used only for system and portable file input
- and output. Upper case only. There is no index for short
- names. Short names are not necessarily unique. Any
- variable may have no short name, indicated by an empty
- string. */
- char short_name[SHORT_NAME_LEN + 1];
-
- /* Each command may use these fields as needed. */
- void *aux;
- void (*aux_dtor) (struct variable *);
-
- /* Values of a categorical variable. Procedures need
- vectors with binary entries, so any variable of type ALPHA will
- have its values stored here. */
- struct cat_vals *obs_vals;
- };