An expression to define a table 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.