fixed `!` parsing