Added type validator for the nonterminal If
Corrected some bugs in the grammar
Added labels for different non-terminals