Previous: prsshm Up: ../plot79_p.html Next: prssty


PRSSHO

       SUBROUTINE  PRSSHO (KEYSTR,PKEY,LKEY,NKEY,PREFIX,LOCPFX,LENPFX,
      X                    SWWORD)
 C$    (Parse - Show Keys)
 C$    Display a list of some, or all, keys in a parse key string.
 C$    The list of keywords  are ordered alphabetically  according
 C$    to the ASCII collating sequence and packed in KEYSTR(*)  in
 C$    the form
 C$
 C$    *fKEY1*fKEY2*fKEY3*...*fKEYN
 C$
 C$    where the first character  is the key separator  character,
 C$    which  may  be  any  character  which  is  not  a   keyword
 C$    character.  Letter case is ignored in the comparisons.
 C$
 C$    The character following each  key separator is an  OPTIONAL
 C$    flag character, always a  digit in the  range 0..7, with  0
 C$    being the standard choice, and  the one assumed by  default
 C$    if the character following the key separator is not one  of
 C$    the in-range digits (and  therefore is the first  character
 C$    of the key).  It  encodes 3 flag bits,  and is obtained  by
 C$    summing the following option values:
 C$
 C$    1 - Abbreviation: Accept a match  with this  keyword as  an
 C$                      abbreviation for another  keyword in  the
 C$                      table, even  if the  match is  ambiguous.
 C$                      For  example,  a  table  in  a   graphics
 C$                      application might  contain  the  keywords
 C$                      LINE,   LINE-WIDTH,    LINE-STYLE,    and
 C$                      LINE-INTENSITY.  LINE would be  ambiguous
 C$                      unless it were marked as an abbreviation.
 C$                      Similarly, L, LI, and  LIN could also  be
 C$                      present with the abbreviation flag set.
 C$    2 - No Recognize: Do not recognize this keyword  even if it
 C$                      would otherwise be  an acceptable  match.
 C$                      For example,  if DELETE  were a  keyword,
 C$                      and the only  one beginning  with D,  one
 C$                      might wish to include  keywords D and  DE
 C$                      with the No Recognize flag set, in  order
 C$                      to disallow matches with them, forcing at
 C$                      least 3 letters to be typed to  recognize
 C$                      DELETE.  Any keyword  with this flag  set
 C$                      is suppressed  in a  typeout of  possible
 C$                      matches by PRSSHO.
 C$    4 - Invisible:    Allow  matches with this keyword,  but do
 C$                      not display it in  a typeout of  possible
 C$                      matches by PRSSHO.   For example, if  the
 C$                      keyword PRINT  is  preferred  over  LIST,
 C$                      both could be in the keyword table and be
 C$                      recognized,  but  LIST  could  have   the
 C$                      Invisible  flag  set.   This  lets  newer
 C$                      program    versions    retain     command
 C$                      compatibility  with   older   ones,   yet
 C$                      gradually wean  users  away from  use  of
 C$                      obsolete command words.
 C$
 C$    The arguments are:
 C$
 C$    KEYSTR(*)......Packed keyword string.
 C$    PKEY(*)........Array of pointers to the beginning of the
 C$                   keys in KEYSTR(*).
 C$    LKEY(*)........Array of lengths of the keys in KEYSTR(*).
 C$    NKEY...........Number of keys in KEYSTR(*), and number of
 C$                   entries in PKEY(*) and LKEY(*).
 C$    PREFIX(*)......Packed prefix token string.
 C$    LOCPRX.........Index of prefix string in PREFIX(*).
 C$    LENPFX.........Length of prefix string.
 C$    SWWORD......... .TRUE. - Keywords are switches.  The
 C$                             typeout will include a leading
 C$                             slash before each keyword.
 C$                   .FALSE. - keywords are not switches.
 C$
 C$    Normally,  LENPFX  will  be  zero  and  all  keys  will  be
 C$    displayed.   However,  if  a   partial  list  is   desired,
 C$    PREFIX(*) contains the  prefix of those  strings, and  only
 C$    those which match PREFIX(*) in the first LENPFX  characters
 C$    will be  displayed.   Keywords  with the  Invisible  or  No
 C$    Recognize flag set are suppressed from the display.
 C$    (17-FEB-83)