{
{    The purpose of this SCL command interface is for prompting via a menu.
{
{    SCL COMMAND INTERFACE:
{
{      rap$prompt_via_menu (
{        menu_module, mm       : name = $required
{        menu_selections, ms   : list 1..10 of name = $required
{        menu_parameters, mp   : list 1..50 of string = $optional
{        prompting_options, po : list of key allow_go, allow_null,
{                              allow_quit, clear_screen, confirm_selection
{                              = $optional
{        selection_chosen, sc  : var of string = $required
{        status                : var of status = $optional
{        )
{
{    PARAMETERS:
{
{      MENU_MODULE (MM)
{        Specifies the name of the help module that contains the menu
{        message templates.  This parameter is required.
{
{      MENU_SELECTIONS (MS)
{        Specifies the list of names coinciding with the menu sections.
{        These are the names used for the parameter prompt messages.  The
{        order of the list determines the order of the selections.  The
{        first name in the list is selection 1, second is selection 2, and
{        so on.  This parameter is required.
{
{      MENU_PARAMETERS (MP)
{        Optionally specifies the values to replace the parameters found
{        in the the message templates that make up the menu.  The
{        parameters in the templates are numbered for identification.  The
{        parameter numbered '1' is reserved for the selections (each
{        selection must begin with a '+P1').  The values for the
{        selections parameter are automatically supplied by the interface.
{        The first value in the MENU_PARAMETERS list is associated with
{        the second parameter, the second value in the list is associated
{        with the third parameter, and so on.
{
{      MENU_OPTIONS (MO)
{        Optionally specifies the menu options to allow.  The choices are:
{
{          allow_go
{
{            Allows the user to enter 'go' or 'g' in upper or lower case
{            for the menu.  The value returned by the menu interface
{            is '+GO'.
{
{          allow_null
{
{             Allows the user to enter a null string or carriage return
{             for the menu.  The value returned by the menu interface
{             is '+NULL'.
{
{          allow_quit
{
{            Allows the user to enter 'quit', 'qui', or 'q' in upper or
{            lower case for the menu.  The value returned by the menu
{            interface is '+QUIT'.
{
{          clear_screen
{
{            Causes the screen to be cleared before displaying the menu.
{            If not used the menu will be displayed following whatever
{            is on the screen.
{
{          confirm_selection
{
{            Causes the user to have to confirm whether or not they want
{            to use the input they entered.  If a parameter assist message
{            is found in the message module, it is used, otherwise a
{            "canned" message, 'Is the selection +P correct (YES or NO)?',
{            is used.
{
{      SELECTION_CHOSEN (SC)
{        This is the selection chosen by the user. It is either the name
{        of the selection as defined by the menu module or one of the
{        keywords described in the menu options.  This parameter is
{        required.
{
{      STATUS
{        Optional status variable.
{        Conditions:
{              rae$menu_definition_error
{              rae$module_access_error
{
