The YAML_ALIAS function creates a new YAML_Alias object, which can be used to hold an alias (reference) to a YAML anchor. YAML_Alias objects will automatically be returned from the YAML_PARSE function when the PRESERVE_ALIAS keyword is set.

Examples


Create a YAML_Value containing a scalar float value and anchor, and a YAML_Alias that references it:

yvalue = YAML_Value(1.234, ANCHOR='myanchor')
yalias = YAML_Alias('myanchor')
mymap = YAML_Map('key1', yvalue, 'key2', yalias)
print, yaml_serialize(mymap)

IDL prints:

key1: &myanchor 1.23400
key2: *myanchor

Now call YAML_PARSE with the PRESERVE_ALIAS keyword and examine the map keys:

yaml = [ $
'key1: &myanchor 1.23400', $
'key2: *myanchor']
yp = yaml_parse(yaml, /preserve_alias)
help, yp['key1'], yp['key2']
print, yp['key1'].value

IDL prints:

<Expression>    YAML_VALUE  <ID=5>  VALUE='myanchor' VALUE='1.23400'
<Expression>    YAML_ALIAS  <ID=6>  ALIAS='myanchor'
1.23400

Note: If YAML_PARSE is called without the PRESERVE_ALIAS keyword, then all anchors and aliases will be resolved and will not be returned.

Syntax


Result = YAML_Alias( [Alias] )

Return Value


Returns a reference to the newly-created YAML_Alias.

Arguments


Alias

Set this argument to a string giving the alias. Do not include the "*" in front of the alias; it will be added automatically when serializing to YAML.

Keywords


None

Properties


All properties can be set and retrieved using the dot "." operator.

ALIAS

Set this property to a string containing the YAML alias. Do not include the "*" in front of the alias; it will be added automatically when serializing to YAML. This alias must refer to an anchor somewhere else in the YAML stream. Conversely, when a YAML stream gets parsed with the PRESERVE_ALIAS keyword, if there is a YAML alias, then the resulting YAML_Alias will have the ALIAS property set. See the example above.

Variable Information


HELP

The HELP procedure provides general information:

yaml = [ $
'key1: &myanchor 1.23400', $
'key2: *myanchor']
yp = yaml_parse(yaml, /preserve_alias)
help, yp['key2']

IDL prints:

<Expression>    YAML_ALIAS  <ID=6>  ALIAS='myanchor'

PRINT and Implied Print

The PRINT procedure and Implied Print serialize the output in YAML format:

IDL> yalias = YAML_Alias('myanchor')
IDL> print, yanchor
IDL> yanchor

In both cases IDL prints:

*myanchor

Version History


8.9

Introduced

See Also


YAML_Value, YAML_PARSE, YAML_SERIALIZE