#### Table of Metacharacters

Many characters have special meaning in the NeXtMidas shell. This table lists their precedence (from highest to lowest) and function.

Character | Position | Function
--- | --- | ---
& | end | Continues command to next line. In a macro, the line following is concatenated without its leading white space.
&& | end | No continuation, becomes literal final &
? | end | Prompts for command arguments. Does not function within macros.
$ | start | Forces command to be executed in the shell that is running NeXtMidas (instead of a subshell). This is run from Java and does not affect your Unix or other shell.
$$ | start | Forces command to operating system. This will affect your Unix or other shell.
! (bang) | start | Recalls recent commands.
! (bang) | anywhere | Designates inline commenting within a macro (except within doublequotes).
| (pipe) | between arguments | Used by commands such as PLOT to indicate a group of files. Also used by some commands to indicate multiple mask (flag) values.
/ | after command name | Applies following switch to command.
, (comma) | between arguments | Separates arguments.
(space) | between arguments | Separates arguments.
^ (caret) | before name | Forces the substitution of the result or macro argument name following.
{ } | after a caret | Defines the range of characters to which the caret (^) applies.
{ } | anywhere | Defines the start and end to a NeXtMidas table definition (see Tables).
{ } | after filename | Treats characters in the brackets as file name qualifiers.
" " | around argument | Preserves characters bracketed by " " as a leteral string argument, leaving the white space and capitalization alone.
% | before macro name | Designates the macro as a user macro.
_ (underscore) | before file name | Designates the file name as the name of a pipe in a piped macro.
( ) | after file name | Treats characters bracketed by ( ) as a file name trimmer.
( ) | around expression | Groups expressions in an inline calculation.
[ ] | after a `STARTMACRO` argument | Defines the default value for that argument.
[ ] | within ASK prompt | Defines the default for the ASK prompt.
: (colon) | between type and name | Separates type from argument or result label.
: (colon) | in trim qualifier | Separates start from end.

Note: Beware of "vanishing metacharacters." When executing from the O/S shell, it may process and remove things like double quotes on its own. In Unix systems, it is usually safest just to enclose the entire command in single quotes, so that everything inside will be preserved as literal, for example:

    $ nm 'say "hello"'