HP 3000 Manuals

MACECHO [ System Debug Reference Manual ] MPE/iX 5.0 Documentation


System Debug Reference Manual

MACECHO 

Controls the "echoing" of each macro command line prior to its execution.

Syntax 

     MACECHO pattern [level]

Parameters 

 pattern         The name(s) of the macro(s) for which echoing is to be
                 enabled/disabled.

                 This parameter can be specified with wildcards or with a
                 full regular expression.  Refer to appendix A for
                 additional information about pattern matching and
                 regular expressions.

                 The following wildcards are supported:

                 @          Matches any character(s).
                 ?          Matches any alphabetic character.
                 #          Matches any numeric character.

                 The following are valid name pattern specifications:

                 @          Matches everything; all names.
                 pib@       Matches all names that start with "pib".
                 log2##4    Matches "log2004", "log2754", and so on.

                 The following regular expressions are equivalent to the
                 patterns with wildcards that are listed above:

                      `.*`
                      `pib.*`
                      `log2[0-9][0-9]4`

 level           Echoing can be enabled or disabled (default).  The
                 following values are valid:

                 0       Disabled (default).
                 1       Enabled.

Examples 

     $nmdat > macl @ all 
     macro driver
        machelp = 'This macro calls macros "triple", "min",  and  "inc" in order' +
                  'to demonstrate the MACECHO, MACREF, and MACTRACE commands'
     { loc one 1;
       loc two 2;
       wl min ( triple(two) inc(one) )
     }
     macro inc
      ( num : ANY  )
        machelp = 'returns the increment of "num"'
     { loc temp num;
       loc temp temp + 1;
       return temp
     }
     macro min
      ( parm1 : ANY  ,
        parm2 : ANY  )
        machelp = 'returns the min of "parm1" or "parm2"'
     { if parm1 < parm2
       then return parm1
       else return parm2
     }
     macro triple
      ( input : ANY  )
        machelp = 'triples the parameter "input"'
     { return input *3
     }

Assume that the macros listed above have been defined.  A few of the
macros use local variables inefficiently, for the purpose of
demonstration.

     $nmdat > driver 
     $2

When a macro is called, the commands in the macro body are typically
executed silently.  They are not displayed as they are being executed.
In this example, macro driver executes silently, and only the expected
macro output is displayed.

     $nmdat > macecho driver 1 
     $nmdat > driver 
       driver > loc one 1
       driver > loc two 2
       driver > wl min ( triple(two) inc(one) )
     $2

In this example, echoing is enabled for macro driver.  Then, when the
macro is executed, each command line in the macro body is displayed just
prior to the execution of that line.

     $nmdat > macecho min 1 
     $nmdat > driver 
       driver > loc one 1
       driver > loc two 2
       driver > wl min ( triple(two) inc(one) )
          min > if parm1 < parm2 then return parm1 else return parm2
          min > return parm2
     $2

In this example, echoing is enabled for macro min, in addition to macro
driver which remains enabled from above.  Command lines are displayed for
both macros.  Notice that the command lines for macro min are indented,
since it is called by macro driver.  At each nested level of macro
invocation, an additional three blanks are added as indentation.

     $nmdat > macecho @ 1 
     $nmdat > driver 
       driver > loc one 1
       driver > loc two 2
       driver > wl min ( triple(two) inc(one) )
          triple > return input *3
          inc > loc temp num
          inc > loc temp temp + 1
          inc > return temp
          min > if parm1 < parm2 then return parm1 else return parm2
          min > return parm2
     $2

In this example, echoing is enabled for all ("@") currently defined
macros.  Each command line, for every macro, is displayed before the
command line is executed.

     $nmdat > macecho @ 
     $nmdat > driver 
     $2

In this example, echoing is disabled for all macros.  Since the level 
parameter is not specified, the default of disabled is assumed.
Execution of the macro driver is silent once again.

     $nmdat > macecho min 1 
     $nmdat > driver 
          min > if parm1 < parm2 then return parm1 else return parm2
          min > return parm2
     $2
     $nmdat > macl @ echo 
     macro min  echo

In this example, echoing is enabled for macro min.  The command lines for
macro min are displayed, indented.  The MACLIST command is used to
display all macros that currently have ECHO enabled, and macro min is
indicated.

Limitations, Restrictions 

none


CAUTION The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.


MPE/iX 5.0 Documentation