recursive call support

Signed-off-by: Tim Henderson <tim.tadh@gmail.com>
Added If expressions to the grammar.

Signed-off-by: Tim Henderson <tim.tadh@gmail.com>