inveigher

noun
  1. a person who speaks or writes angrily or bitterly against something
  2. Usage: formal

Examples