X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvars-atr.c;h=160894b4f9fd6d4197788ad8e7226a26152f697a;hb=f3cf52b51e6d89e94190de22b1fa813e8d3746f7;hp=5e34cb5946aa410aca09a922a1642ebea90d1e09;hpb=933b760efccdfa26f14254f1fae002ea3b0a1495;p=pspp diff --git a/src/vars-atr.c b/src/vars-atr.c index 5e34cb5946..160894b4f9 100644 --- a/src/vars-atr.c +++ b/src/vars-atr.c @@ -22,22 +22,31 @@ #include "error.h" #include #include "alloc.h" -#include "command.h" #include "dictionary.h" -#include "do-ifP.h" -#include "expressions/public.h" -#include "file-handle.h" #include "hash.h" -#include "lexer.h" +#include "lex-def.h" #include "misc.h" #include "str.h" #include "value-labels.h" -#include "vfm.h" #include "gettext.h" #define _(msgid) gettext (msgid) -#include "debug-print.h" +/* Returns an adjective describing the given variable TYPE, + suitable for use in phrases like "numeric variable". */ +const char * +var_type_adj (enum var_type type) +{ + return type == NUMERIC ? _("numeric") : _("string"); +} + +/* Returns a noun describing a value of the given variable TYPE, + suitable for use in phrases like "a number". */ +const char * +var_type_noun (enum var_type type) +{ + return type == NUMERIC ? _("number") : _("string"); +} /* Assign auxiliary data AUX to variable V, which must not already have auxiliary data. Before V's auxiliary data is @@ -114,33 +123,6 @@ hash_value(const union value *v, int width) -/* Discards all the current state in preparation for a data-input - command like DATA LIST or GET. */ -void -discard_variables (void) -{ - dict_clear (default_dict); - default_handle = NULL; - - n_lag = 0; - - if (vfm_source != NULL) - { - free_case_source (vfm_source); - vfm_source = NULL; - } - - cancel_transformations (); - - ctl_stack = NULL; - - expr_free (process_if_expr); - process_if_expr = NULL; - - cancel_temporary (); - - pgm_state = STATE_INIT; -} /* Returns true if NAME is an acceptable name for a variable, false otherwise. If ISSUE_ERROR is true, issues an @@ -298,3 +280,40 @@ var_set_short_name_suffix (struct variable *v, const char *base, int suffix) ofs = strlen (v->short_name); strcpy (v->short_name + ofs, start); } + + +/* Returns the dictionary class corresponding to a variable named + NAME. */ +enum dict_class +dict_class_from_id (const char *name) +{ + assert (name != NULL); + + switch (name[0]) + { + default: + return DC_ORDINARY; + case '$': + return DC_SYSTEM; + case '#': + return DC_SCRATCH; + } +} + +/* Returns the name of dictionary class DICT_CLASS. */ +const char * +dict_class_to_name (enum dict_class dict_class) +{ + switch (dict_class) + { + case DC_ORDINARY: + return _("ordinary"); + case DC_SYSTEM: + return _("system"); + case DC_SCRATCH: + return _("scratch"); + default: + assert (0); + abort (); + } +}