Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
System Debug Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 2 User Interface

Macros

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

System Debug supports an extensive macro facility that allows users to define a sequence of commands that may be invoked either as a command or as a function in an expression. The MAC command is used to define a macro, as the following examples illustrate:



   $nmdebug > mac double (n=2) { return n * 2 }

   $nmdebug > mac formattable (entry=1) { ... }


Reference to macros as functions in expressions look exactly like references to predefined functions:



   $nmdebug > wl double (1)

   $2

   $nmdebug > wl double (double (1))

   $4

   $nmdebug >


Macro parameters may be defined as being either required or optional (as indicated by the presence of default parameter values in the macro definition). When all of a macro's parameters are optional and it is referenced as a function without any parameters, the enclosing parentheses are optional:



   $nmdebug > wl double ()

   $2

   $nmdebug > wl double

   $2

   $nmdebug >


When macros are used as commands, the parentheses surrounding the parameters may be omitted:



   $nmdebug > formattable 3

   ...

   $nmdebug > formattable (3)

   ...


However, since macro command parameters may still be surrounded by parentheses as an option, care must be used when the first parameter is an expression that begins with a parenthesis of its own. In this case, the parenthesis is seen as the beginning of a parenthesized list of command parameters, and not as belonging to the expression for the first parameter. Thus, parameters surrounding the entire command list are required when the first parameter starts with a parenthesis:



   $nmdebug > formattable (current_entry + 1) * 2      /* wrong

   $nmdebug > formattable ((current_entry + 1) * 2)    /* right


Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.