I write source-to-source compilers in JavaScript using Peggyjs. I also write compilers in Prolog.
For reference, I also have a list of source-to-source compilers on GitHub.