Учитывая ввод любого действительного Glypho программы выведите ее «читабельный» аналог.
Glypho - интересная идея esolang:
Ссылка на инструкцию приведена здесь. Для каждой инструкции символы abcd представляют символы, составляющие каждую инструкцию. a относится к первому уникальному символу, b относится ко второму уникальному символу и т. д.
aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of stack aabb ..... \ Swap - swaps top two stack elements aabc ..... 1 Push - pushes a 1 onto the top of stack (creates new element) abaa ..... < RRot - pops bottom element and pushes to top of stack abab ..... d Dup - Duplicates top stack element abac ..... + Add - pops top two elements and pushes their sum abba ..... [ L-brace - skip to matching ] if top stack element is 0 abbb ..... o Output - pops and outputs top stack element abbc ..... * Multiply - pops top two elements and pushes their product abca ..... e Execute - Pops four elements and interprets them as an instruction abcb ..... - Negate - pops value from stack, pushes -(value) abcc ..... ! Pop - pops and discards top stack element abcd ..... ] R-brace - skip back to matching [
( Фото : Брайан Томпсон, он же Wildhalcyon)
Так, например, PPCG
будет представлять инструкцию Push -PPCG
соответствует шаблону aabc
, где a
представляет P
, b
представляет C
и c
представляет G
.
На входе будет одна строка, состоящая только из печатных символов ASCII. Он всегда будет иметь длину, кратную четырем (дух).
Выходными данными является каждая группа из четырех символов во входной строке, заменяемая той инструкцией, которую они обозначают. Используйте однобуквенные названия инструкций (те, которые идут сразу после пяти точек в приведенной выше таблице).
Так как это код-гольф , победит самый короткий код в байтах.
Тестовые случаи:
In Out
------------------------------------------------
Programming Puzzles & Code Golof ]!]!]]]+
nananananananana batman! dddd]]
;;;;;;;:;;:;;;:: ni>\
llamas sleep 1-*
8488133190003453 <[oe
<empty string> <empty string>