fix for initialization

The previous implementation only accepted expressions in the
initialization par and thus forbid actual initialization of variables.
However, this fix now forbids simple expressions (in this
implementation, expressions must affected to a variable).
Still, this is closer to what one would expect from the for
initialization part.
add partial support for functions

Arguments are not yet supported.