Inveigher

(n.) One who inveighs.