{
{   The purpose of this request is to produce a Parameter Description Table
{ (PDT) from input in the form of an SCL procedure declaration.  In addition
{ to the FIRST_LINE to be processed, input to this request may be provided
{ dynamically by supplying an input procedure that obtains subsequent input as
{ required by this interface.
{
{   This interface assumes that the first word of the input declaration has
{ been processed by the caller; i.e.  whether the declaration begins with
{ PROCEDURE or FUNCTION has been determined and used to establish the value of
{ the COMMAND_OR_FUNCTION parameter.
{
{       CLP$GENERATE_PDT (COMMAND_OR_FUNCTION, FIRST_LINE, FIRST_LINE_INDEX,
{         GET_LINE, WORK_AREA, LAST_LINE, LAST_LINE_INDEX,
{         COMMAND_OR_FUNCTION_NAME, ALIASES, AVAILABILITY,
{         COMMAND_OR_FUNCTION_SCOPE, COMMAND_LOG_OPTION,
{         PARAMETER_DESCRIPTION_TABLE, STATUS)
{
{ COMMAND_OR_FUNCTION: (input)  This parameter specifies whether the PDT being
{       generated is for a command or a function.
{
{ FIRST_LINE: (input)  This parameter specifies the first (possibly only) line
{       to be processed by this request.
{
{ FIRST_LINE_INDEX: (input)  This parameter specifies the position within the
{       first line at which processing is to begin.
{
{ GET_LINE: (input)  This parameter specifies the procedure that this request
{       calls to get its input dynamically.  The procedure is responsible for
{       concatenating continuation lines to form a "command line".  NIL may be
{       specified to indicate the absence of an input procedure.
{
{             input_procedure (LINE, STATUS)
{
{       LINE: (output)  This parameter specifies the line.  A NIL pointer is
{             used to indicate end of input.
{
{       STATUS: (output)  This parameter specifies the input procedure's
{             completion status.
{
{ WORK_AREA: (input, output)  This parameter specifies an area of storage that
{       will be used to construct the PDT and aliases.  The current position
{       of this sequence pointer is updated to reflect the amount of storage
{       used by the request.  The PDT and aliases are completely contained
{       within the used part of this sequence.
{
{ LAST_LINE: (output)  This parameter specifies the last line processed by
{       this interface.  If an input procedure is supplied and is used by the
{       request, this is set to the last line that procedure returned;
{       otherwise this is set to FIRST_LINE.
{
{ LAST_LINE_INDEX: (output)  This parameter specifies the position within
{       LAST_LINE that immediately follows the last character that was
{       processed.
{
{ COMMAND_OR_FUNCTION_NAME: (output)  This parameter specifies the name of the
{       command or function for which the PDT is being generated.
{
{ ALIASES: (output)  This parameter specifies the aliases for the command or
{       function name.  NIL indicates there are no aliases.
{
{ AVAILABILITY: (output)  This parameter specifies whether the command or
{       function is to be advertised or hidden (for instance, by the
{       display_command_list_entry command).
{
{ COMMAND_OR_FUNCTION_SCOPE: (output)  This parameter specifies the scope of
{       the command or function.
{
{ COMMAND_LOG_OPTION: (output)  This parameter specifies whether calls to the
{       command are to be logged automatically or manually.
{
{ PARAMETER_DESCRIPTION_TABLE: (output)  This parameter specifies the
{       generated PDT.
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITIONS: cle$work_area_overflow
{
