{
{   The purpose of this request is to analyze a command and identify its major
{ component parts.
{
{       CLP$ANALYZE_COMMAND (COMMAND_TEXT, PROMPTING_REQUESTED, ESCAPED, LABEL,
{         COMMAND_REFERENCE_INDEX, COMMAND_REFERENCE_SIZE, FILE, FORM, NAME,
{         UTILITY_NAME, PARAMETER_LIST_INDEX, SEPARATOR, EMPTY_COMMAND, STATUS)
{
{ COMMAND_TEXT: (input)  This parameter specifies the command or statement to
{       be analyzed.  This request assumes that the command or statement has
{       been isolated from other commands and statements on the same line (e.g.
{       via CLP$ISOLATE_COMMAND) such that this parmaeter specifies the text of
{       a single command or statement.
{
{ 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_INDEX: (output)  This parameter specifies the start of the
{       "command reference" part of the analyzed command.  If the analyzed
{       statement is an assignment statement, it specifies the start of the
{       variable reference or "left part" of the assignment statement.
{       (Undefined if EMPTY_COMMAND is TRUE.)
{
{ COMMAND_REFERENCE_SIZE: (output)  This parameter specifies the size of the
{       "command reference" part of the analyzed command.  If the analyzed
{       statement is an assignment statement, it specifies the size of 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, it is set to the string 'assignment'.  For a
{       <case selection> statement, it is set to the string 'CASE selection'.
{       For any other command or statement the name is returned in upper case.
{       (Undefined if EMPTY_COMMAND is TRUE.)
{
{ UTILITY_NAME: (output)  This parameter specifies the name of_ the utility on
{       a UTILITY.command reference.  (Undefined if EMPTY_COMMAND is TRUE,
{       osc$null_name 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_SIZE is zero 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.
{
