|
The language consists of a series of function definitions of the
form:
| |
name ( parameter list ) { statements }
|
All variables and parameters are extended precision integers and
are passed by reference. Statements are separated by semicolon
and the following statements are defined:
| |
name = expression
if ( condition ) { statements } else if ( condition ) { statements
} else { statements }
while ( condition ) { statements }
break
name ( parameter list )
mod ( modulus ) { statements }
|
There is no distinction between input and output parameters, but
conventionally, the outputs are put at the end of the parameter
list and the language allows one to write
| |
F ( X, Y, Z ) as Y, Z = F ( X )
|
Expressions are composed out of the following arithmetic operations:
| |
+ addition.
– subtraction.
* multiplication.
/ division, or multiplicative inverse when enclosed in mod block.
% division remainder.
^ exponentiation.
>>constant right shift by a constant.
<<constant left shift by a constant.
condition?a:b pick a when condition is true, otherwise b when false.
|
Conditions can use the following operations:
| |
== equality.
!= inequality.
> bigger than.
< smaller than.
!condition negation.
|
|