t[idx]:exp
consists of a name, an index expression and an initialization expression. To evaluate
this expression, we first recursively evaluate the index expression. If the result
is a positive number, the table is created internally, and it is added to the
current dictionary under its name.
The creation of the table is extremely subtle: as you know, an expression
like t[5]:exp
will evaluate exp
5 times. So, you would expect some kind
of for
-loop in this evaluation procedure. This is not needed since
we can use the table-definition facilities of the implementing Pico to accomplish
the same thing in the implemented Pico. It is the code
tab[nbr]: eval(Exp)
that creates the table
in the MC-eval, by calling nbr
times eval
.