{
{ A FST$PARSED_FILE_REFERENCE provides a breakdown of a file reference.  The
{ path field is a container for the maximum-sized file reference in the form of
{ a string.
{
{ The remaining fields define a substring within the path field for particular
{ path elements.  Depending upon the context in which this type is used, not
{ all of the path elements may be defined.  A missing path element will be
{ identified by a null string, i.e.  the index will be set to one (1) and the
{ size will be set to zero (0).
{
{ The information provided by these fields is best described by example:
{
{ Assume the path is:  :NVE.AJL.BAM.SOURCE_LIBRARY.$HIGH.$ASIS
{
{ complete_path provides ->        :NVE.AJL.BAM.SOURCE_LIBRARY.$HIGH.$ASIS
{ cycle_path provides ->           :NVE.AJL.BAM.SOURCE_LIBRARY.$HIGH
{ file_path provides ->            :NVE.AJL.BAM.SOURCE_LIBRARY
{ catalog_path provides ->         :NVE.AJL.BAM
{ first_name provides ->           NVE
{ last_name provides ->            SOURCE_LIBRARY
{ cycle_reference provides ->      $HIGH
{ open_position provides ->        $ASIS
{ number_of_path_elements ->       4
{
{ Assume the path is:  $LOCAL.JUNK.1.$ASIS
{
{ complete_path provides ->        :$LOCAL.JUNK.1.$ASIS
{ cycle_path provides ->           :$LOCAL.JUNK.1
{ file_path provides ->            :$LOCAL.JUNK
{ catalog_path provides ->         :$LOCAL
{ first_name provides ->           $LOCAL
{ last_name provides ->            JUNK
{ cycle_reference provides ->      1
{ open_position provides ->        $ASIS
{ number_of_path_elements ->       2
{
{ Assume the path is:  :$SOURCE.$UP.OBJECT_LIBRARY
{
{ complete_path provides ->        :$SOURCE.$UP.OBJECT_LIBRARY
{ cycle_path provides ->           :$SOURCE.$UP.OBJECT_LIBRARY
{ file_path provides ->            :$SOURCE.$UP.OBJECT_LIBRARY
{ catalog_path provides ->         :$SOURCE.$UP
{ first_name provides ->           $SOURCE
{ last_name provides ->            OBJECT_LIBRARY
{ cycle_reference provides ->      null string
{ open_position provides ->        null string
{ number_of_path_elements ->       3
{

  TYPE
    fst$parsed_file_reference = record
      path: fst$path,
      catalog_path_size: fst$path_size,
      complete_path_size: fst$path_size,
      cycle_path_size: fst$path_size,
      cycle_reference: fst$path_element_substring,
      file_path_size: fst$path_size,
      first_name: fst$path_element_substring,
      last_name: fst$path_element_substring,
      number_of_path_elements: fst$number_of_path_elements,
      open_position: fst$path_element_substring,
    recend;

*copyc fst$number_of_path_elements
*copyc fst$path
*copyc fst$path_size
*copyc fst$path_element_substring
