Add support for the "!" negation operator in conditions

I noticed that the "!" operator does not work as negation as documented.

I lost some hair on trying to integrate this into the parser as a separate node. So I came up with this hack. It seems to work but isn't really nice.

Is there a better way?