Your task is "simple" should you choose to accept it.
Write an HQ9+ compiler in a language of your choice.
HQ9+ has four commands (as you may be able to tell) H prints "Hello, World!" Q prints out the source code (this can either be the compiled source or HQ9+ source for the purpose of this challenge),9 prints out the lyrics to 99 bottles of beer on the wall, and + is essentially a noop.
Your submission should be written in some language X, and should take input of HQ9+ source and output a program in X.
Wait, I know what you're thinking. This is not a duplicate of Creating a HQ9+ interpreter as it should not run HQ9+ code, but rather compile it. It should output a fully functional program.
- Language X should satisfy the traditional definition of a language
- Standard loopholes disallowed
- This is code golf (shortest program in bytes wins)
- Your solution must be testable
- X cannot be HQ9+ or an extension of HQ9+
There has been some confusion as to what the q command should do. I had originally thought that it would output the compiled code (i.e code in langauge X), but my reference implementation outputs the hq9+ code. I would like to see either one depending on your golfing preferences.
Qoutput the source of the input program, or the compiled program? \$\endgroup\$