Next: , Previous: Variable Leave Status, Up: Variables


2.5.9 Dictionary Class

Occasionally it is useful to classify variables into dictionary classes based on their names. Dictionary classes are represented by enum dict_class. This type and other declarations for dictionary classes are in the <data/dict-class.h> header.

— Enumeration: enum dict_class

The dictionary classes are:

DC_ORDINARY
An ordinary variable, one whose name does not begin with `$' or `#'.
DC_SYSTEM
A system variable, one whose name begins with `$'. See System Variables.
DC_SCRATCH
A scratch variable, one whose name begins with `#'. See Scratch Variables.

The values for dictionary classes are bitwise disjoint, which allows them to be used in bit-masks. An extra enumeration constant DC_ALL, whose value is the bitwise-or of all of the above constants, is provided to aid in this purpose.

One example use of dictionary classes arises in connection with PSPP syntax that uses a TO b to name the variables in a dictionary from a to b (see Sets of Variables). This syntax requires a and b to be in the same dictionary class. It limits the variables that it includes to those in that dictionary class.

The following functions relate to dictionary classes.

— Function: enum dict_class dict_class_from_id (const char *name)

Returns the “dictionary class” for the given variable name, by looking at its first letter.

— Function: const char * dict_class_to_name (enum dict_class dict_class)

Returns a name for the given dict_class as an adjective, e.g. "scratch".

This function should probably not be used in new code as it can lead to difficulties for internationalization.