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)