Previous: prsshm Up: ../plot79_p.html Next: prssty
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)