Biorąc pod uwagę dowolny poprawny program Glypho , wypisz jego odpowiednik „czytelny dla człowieka”.
Glif to ciekawy pomysł na esolang:
Odniesienie do instrukcji znajduje się tutaj. Dla każdej instrukcji znaki abcd reprezentują symbole tworzące każdą instrukcję. a odnosi się do pierwszego unikalnego symbolu, b odnosi się do drugiego unikalnego symbolu itp.
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 [
(kredyt: Brian Thompson alias Wildhalcyon)
Na przykład PPCG
reprezentowałby instrukcję Push -PPCG
odpowiada wzorowi aabc
, w którym a
reprezentuje P
, b
reprezentuje C
i c
reprezentuje G
.
Dane wejściowe będą stanowić pojedynczy ciąg składający się wyłącznie z drukowalnych znaków ASCII. Zawsze będzie miał długość podzielną przez cztery (duh).
Dane wyjściowe to każda grupa czterech znaków w ciągu wejściowym zastępowana przez wskazaną instrukcję. Użyj jednoliterowych nazw instrukcji (tych zaraz po pięciu kropkach w tabeli cytowanej powyżej).
Ponieważ jest to code-golf , wygra najkrótszy kod w bajtach.
Przypadki testowe:
In Out
------------------------------------------------
Programming Puzzles & Code Golof ]!]!]]]+
nananananananana batman! dddd]]
;;;;;;;:;;:;;;:: ni>\
llamas sleep 1-*
8488133190003453 <[oe
<empty string> <empty string>