The MINI-L language provides the following program constructs.
Here are some additional details of the MINI-L language.
Functions in MINI-L take some constant number of scalar arguments, and return a single scalar result. All arguments are passed by value (there are no reference arguments). A syntactically and semantically valid MINI-L program must contain a function named main, which takes no arguments and returns no result (the main function is unique in this regard).
MINI-L supports foreach loops. These loops iterate over an array, executing the body of the loop with a specified variable bound to each of the array elements in turn.
The detailed syntax for the MINI-L language is described here. The following table lists the precedence and associativity of all the operators in the MINI-L languages. Operators are listed top to bottom, in descending precedence.
Precedence | Operator | Description | Associativity |
---|---|---|---|
0 | () |
Function calls | Left-to-right |
1 | [] |
Array subscripting | Left-to-right |
2 | - |
Unary minus | Right-to-left |
3 | * |
Multiplication | Left-to-right |
/ |
Division | ||
% |
Remainder | ||
4 | + |
Addition | |
- |
Subtraction | ||
5 | < |
For relational operators < | |
<= |
For relational operators <= | ||
> |
For relational operators > | ||
>= |
For relational operators >= | ||
== |
For relational operator == | ||
<> |
For relational operator != | ||
6 | not |
Logical not | Right-to-left |
7 | and |
Logical and | Left-to-right |
8 | or |
Logical or | |
9 | := |
Assignment | Right-to-left |