Table of Contents
Syntax of the ircII language:
The ircII language is organized into blocks.
A block is a sequence of statements separated by semicolons.
A statement is one of the following
- A command statement
- An expression statement
- A block statement
- A block with arglist statement
A command statement is of the form
command arguments
The command is separated from the arguments by a space character. The command is either an alias or a built-in command.
A expression statement is of the form
@expression
or
(expression)
The expression is evaluated, but its return value is ignored.
A block statement is of the form
{ block }
which allows you to nest blocks anywhere you need them.
A block with arglist statement is of the form
(arglist) { block }
which allows you to assign $* to local variables before a block. This only modifies $* during the statement itself; $* goes back to its original value after the statement. The local variables that (arglist) creates are normal local variables and will continue to live on.
Expando substitution:
All command statements undergo expando-substitution ($'s are expanded) before the command is separated from the arguments. This is a deliberate feature that allows you to use variables as commands. This expansion is global over the entire statement and occurs regardless of what the command actually ends up being. There is no way to override this on a command-by-command basis.
Expression statements do not undergo expando-substitution, although some operators do permit expandos to be operands. Those expandos are expanded on a case-by-case basis by the expression parser.
Block statements never undergo expando-substitution, although any command statements contained within will be as they are executed.
History:
The block with arglist statement first appeared in EPIC5-2.1.6.