Refactoring grammar of Condition and Expression

Now they should be correct. However there are no more distinction
between conditions and expressions. Conditions are just expressions of
boolean type. And the type must be checked!

Signed-off-by: Celelibi <celelibi@gmail.com>