Creates an AST KeyMap holding keyword/value pairs read from a GRP group kpg1Kymp1
"
keyword = value"
, where the
keyword name can be a hierarchical list of component names separated by dots. The returned
KeyMap has an entry for each component name found at the start of any keyword name.
The value associated with the entry will either be a primitive value (if the keyword name
contained no other components) or another KeyMap (if the keyword name contained other
components).
For example, consider a group containing the following lines:
gaussclumps.epsilon = (0.001,0.002) gaussclumps.contrast = 2.3 clumpfind.naxis = 2 clumpfind.deltat = 2.0 method = gaussclumps
The returned KeyMap will contain 3 entries with keys "
gaussclumps"
, "
clumpfind"
and "
method"
.
The value associated with the "
gaussclumps"
entry will be another KeyMap containing keys "
epsilon"
(a primitive vector entry containing the values 0.001 and 0.002) and "
contrast"
(a primitive
scalar entry with value "
2.3"
). The value associated with the "
clumpfind"
entry will be another
KeyMap containing keys "
naxis"
and "
deltat"
, which will have primitive scalar values "
2"
and "
2.0"
. The value associated with the "
method"
entry will be the primitive scalar value "
gaussclumps"
.
Assigning the value "
def"
(case insensitive) to a keyword has the effect of removing the keyword from the KeyMap. For
example:
global.lis method = def
reads keyword values from the file "
global.lis"
, and then ensures that the KeyMap does not contain a
value for keyword "
method"
. The calling application should then usually use a default value for "
method"
.
Assigning the value "
undef"
(case insensitive) to a keyword has the effect of forcing the value to be undefined. This can be useful in defining
defaults where the keymap is locked after being populated.
Vector elements should be separated by commas and enclosed within parentheses (commas and closing parentheses can be included literally in a vector element by preceeding them with a backslash).
This function provides a private implementation for the public KPG1_KYMAP Fortran routine and kpg1Kymap C function.
Component names must contain only alphanumerical characters, underscores, plus and minus signs [a-zA-Z0-9_-],
Any lower case characters contained in a component name will be translated to the upper case equivalent.
If the last non-blank character in a value is a backslash ("
"
), the
backslash will be reomved, together with any white space following it, and the entire next line will be
appended to the value.