{
{   The purpose of this request is to parse a command into its major component
{ parts.
{
{       CLP$PARSE_COMMAND (PARSE, PROMPTING_REQUESTED, ESCAPED, LABEL,
{         COMMAND_REFERENCE_PARSE, FILE, FORM, NAME,
{         UTILITY_COMMAND_LIST_ENTRY, SEPARATOR, EMPTY_COMMAND, STATUS)
{
{ PARSE: (input, output)  On input this parameter specifies the command or
{       statement to be parsed; i.e.  the UNIT_INDEX and UNIT fields designate
{       the first lexical unit of the statement and the INDEX_LIMIT field
{       designates the position just past the end of the statement.  On output
{       this parameter specifies the parameter list for the command or
{       statement; i.e.  the UNIT_INDEX and UNIT fields have been updated to
{       designate the first lexical unit of the statement's parameters.
{
{ PROMPTING_REQUESTED: (output)  This parameter specifies whether the command
{       was prefixed by the "prompt for parameters" character (?).  (Undefined
{       if EMPTY_COMMAND is TRUE.)
{
{ ESCAPED: (output)  This parameter specifies whether the command was prefixed
{       by the "escape" character (/) used to control command search.
{       (Undefined if EMPTY_COMMAND is TRUE.)
{
{ LABEL: (output)  This parameter specifies the label on the command.  If no
{       label was present, osc$null_name is returned.  (Undefined if
{       EMPTY_COMMAND is TRUE.)
{
{ COMMAND_REFERENCE_PARSE: (output)  This parameter represents the "command
{       reference" part of the parsed command.  If the parsed statement is an
{       assignment statement, it represents the variable reference or "left
{       part" of the assignment statement.  (Undefined if EMPTY_COMMAND is
{       TRUE.)
{
{ FILE: (output)  This parameter specifies the file used in a file.command
{       style reference.  (Undefined if EMPTY_COMMAND is TRUE or if file_given
{       is FALSE.)
{
{ FORM: (output)  This parameter represents the form in which the command was
{       specified (undefined if EMPTY_COMMAND is TRUE):
{
{             command ----> clc$name_only_command_ref
{
{             file.command ----> clc$module_or_file_command_ref
{
{             catalog.command.cycle ----> clc$file_cycle_command_ref
{
{             $SYSTEM.command ----> clc$system_command_ref
{
{             UTILITY.command ----> clc$utility_command_ref
{
{ NAME: (output)  This parameter specifies the name of the command.  For an
{       assignment statement, the parameter is set to 'assignment' in lower
{       case.  For a <case selection> statement, the parameter is set to 'case
{       selection' in lower case.  For any other command the name is returned
{       in upper case.  (Undefined if EMPTY_COMMAND is TRUE.)
{
{ UTILITY_COMMAND_LIST_ENTRY: (output)  This parameter specifies the command_
{       list_entry representing the utility on a UTILITY.command reference.
{       (Undefined if EMPTY_COMMAND is TRUE, NIL if FORM is not
{       clc$utility_command_ref.)
{
{ SEPARATOR: (output)  This parameter specifies the separator between the
{       command reference and the parameters for the command.  If CLC$LEX_EQUAL
{       is returned, the command is a <case selection> statement if
{       COMMAND_REFERENCE_PARSE.UNIT.KIND is CLC$LEX_EQUAL and an assignment
{       statement otherwise.  Other possible values are:  CLC$LEX_SPACE,
{       CLC$LEX_COMMA, CLC$LEX_SEMICOLON, CLC$LEX_END_OF_LINE.  (Undefined if
{       EMPTY_COMMAND is TRUE.)
{
{ EMPTY_COMMAND: (output)  This parameter specifies whether the command is
{       empty (consists solely of spaces and/or comments).
{
{ STATUS: (output) This parameter specifies the request status.
{
