Everhart, Glenn (FUSA) From: hoffman@xdelta.enet.dec.nospam Sent: Tuesday, May 18, 1999 6:35 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: Need some help using set command & CLI$ routines In article <3741ADDF.88EC8045@skynet.be>, Marc Van Dyck writes: :What I would like to do is structure it as one image that will do only :the DCL parsing, and a shareable image containing the real stuff, so that it :can be used from DCL, but also as an API, i.e. link the shareable image :with another executable. .. If you have questions on shareable images, the OpenVMS shareable image cookbook has moved to: http://www.openvms.digital.com/wizard/ :What I would like to do is have one executable only. The problem is to :detect which syntax has been activated. Once DCL has detected that I'm :in the syntax MBX_CREATE (because I specified the CREATE qualifier), it :jumps to another table where the qualifier CREATE does not exist anymore. :So, doing a CLI$PRESENT ('CREATE') signals an error (specified entity does :not exist in command tables). With the current structure, this is not a :problem, since once I'm in the syntax MBX_CREATE, the image MBX_CREATE is :activated, so I know which syntax is in use, and I don't even bother to :test; but if all is in one common image, I loose that information. :So, how do I know ? If I understand the question, the executable image referenced simply does a series of calls to cli$present (with a signal handler to suppress the signals that might otherwise be generated) to see what verb(s) were requested. Calls to cli$get_value then follow, as necessary. Most verb in this environment tend to use a base verb, and add keywords or qualifiers as needed. :I'm sure that there are some complex DCL commands in the standard VMS :distribution where the same problem has been encountered. Any suggestions :about how it has been solved ? How would you do it ? Get the VERB utility or look at the CLD files installed with OpenVMS Alpha -- CONVERT, COPY, DELETE and a variety of other verbs all have multiple references to the same image... :If I ever get to finish that properly, I' consider submitting it (with :the sources) for the next version of the freeware CD. Does it make sense, :and which process should I follow ? Sure... See: http://www.openvms.digital.com/openvms/freeware/cd.html :Last thing, I'm using a DCL tables decompiler, and saw from it that :there are much more built-in types (those types that begin with a $, :like $number, $file, and so on) that those documented. :Anyone has a complete list ? I put the following list together a number of years ago, and have not checked to see if it is still current. !++ ! ! The VMS CLD implements a number of predefined data types. The types ! listed with an asterisk (*) are actually officially documented. All ! other types listed below are subject to alteration or elimination in ! any random release of VMS. ! ! $INFILE $OUTFILE $NUMBER * ! $PRIVILEGE $DATETIME * $PROTECTION ! $PROCESS $INLOG $OUTLOG ! $INSYM $OUTSYM $NODE ! $DEVICE $DIRECTORY $UIC ! $REST_OF_LINE * $PARENTHESIZED_VALUE ! $DELTATIME * $QUOTED_STRING * $FILE * ! $EXPRESSION $ACL * ! !-- -------------------------- pure personal opinion --------------------------- Hoff (Stephen) Hoffman OpenVMS Engineering hoffman#xdelta.zko.dec.com