I just created a language on the spot, and it's called "interpreter". Called as such because the only valid word is "interpreter"! A sample program in "interpreter" looks like this:
interpreter interpreterinterpreter interpreterinterpreterinterpreter interpreterinterpreterinterpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter
It may look meaningless, but the language works like:
interpreter
initializes the accumulator to zero.interpreterinterpreter
adds one to the accumulator.interpreterinterpreterinterpreter
subtracts one from the accumulator.interpreterinterpreterinterpreterinterpreter
multiplies the accumulator by 2.interpreterinterpreterinterpreterinterpreterinterpreter
divides the accumulator by 2.interpreterinterpreterinterpreterinterpreterinterpreterinterpreter
outputs the accumulator.
Rules
- Standard loopholes are forbidden.
- Shortest program in bytes wins.
- Your program should work for all test cases.
- You may assume that all code entered is valid.
- The first command will always be
interpreter
. - There will always be a single space between each command.
- Floating point division, not integer division.
- Trailing newlines are allowed.
Testcases
interpreter interpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter -> 1
interpreter interpreterinterpreter interpreterinterpreter interpreterinterpreterinterpreterinterpreter interpreterinterpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter -> 3
interpreter interpreterinterpreterinterpreterinterpreterinterpreter interpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter -> 1
interpreter interpreterinterpreter interpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter interpreterinterpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter interpreter interpreterinterpreter interpreterinterpreterinterpreterinterpreterinterpreterinterpreter -> outputs 2, then outputs 1, then outputs 1
interpreter
initializes the accumulator to 0. Will there always be one at the start of the program? \$\endgroup\$interpreter
at the beginning. \$\endgroup\$