Previous Next        Current Page: NeXtMidas User's Guide / Macros / Macro Structure and Execution
back
FAQs   
Release Information   
Getting Help   
Basic Concepts   
Result Parameters   
XML Support   
Files   
System Operation   
Macros   
   - Macro Structure and Execution   
   - Messages in Macros   
   - Piping in Macros   
   + Creating a New Macro   
   - User Macros   
WebStart Intro   
Graphics   
X-Midas Interoperability   
Third-Party Compatibility   
Installation and Customization   
Running NeXtMidas Independently   
Glossary   


Macro Structure and Execution

Here is the basic structure of a NeXtMidas macro:

! This macro takes a name argument that defaults to "SUPERMAN" if 
! not provided and displays a greeting message to the named person
startmacro s:name[Superman]
  ! This is another comment
  say "Hello there ^{name}!"
  ...
endmacro

procedure processMessage m:msg
  say "msg.name ^msg.name, data ^msg.data"
  ...
return

procedure processException m:emsg
 ...
return

The first line defines the parameters supplied at run-time. Defaults can be given for unconfigured macros by putting the default values in square brackets immediately after the parameter name (no spaces), configured macros specify their defaults in the command dictionary (see UPDATE), an entry in the command dictionary overrides any default given at the top of the macro.

By default, all results created by a macro have local scope only. They are not accessible by other macros and are automatically destroyed at macro completion. Global results are always available for read access. To make global results writable by a macro, it must be called out using the GLOBAL statement.

The processMessage is automatically sent any messages passed to the macro. Optionally processException can be used to override the default exception handling (this is extremely rare).

Configured macros are invoked just like any other command (name followed by the macro arguments). If the macro is a user macro, you must always begin the name with the percent sign (%). Execution then proceeds through each statement between STARTMACRO and ENDMACRO. To see the constituent macro statements as they execute, type VERIFY ON before running the macro. When the macro completes, it returns to the NeXtMidas prompt.


back