Formal Language Rewriting