support BANG unary operator