Думаю, кто-то помнит тему Новая версия Яролита (форк ГОСТ 16876-71, табл 2)
На страничке http://программирование-по-русски.рф/яролит.яргт/ можно попробовать ещё более новую версию реализации яролита. Наконец-то я сделал обратное, а не только прямое преобразование.
Кодировка на данный момент такова:
Русский алфавит:
a b v g d e jo zh z i jj k l m n o p r s t u f kh c ch sh shh jq y q eh ju ja
(Соответствует ГОСТ 16876-71, таблица 2, кроме Ь = Q и Ъ = JQ - в госте эти значки превращаются в небуквенные литеры)
Английские буквы:
xe - переключение в английский режим. В частности, «xeRussia» раскодируется как «Russia», а не как «Руссиа».
В английском режиме «x» кодируется как «xx», а «w» - как «ww»
xr - переключение обратно на русский
Суммарно, JAxeRxrJA == ЯRЯ
Не ASCII, не кириллица = xuNNNNNNx, где NNNNNN - 16-ричный код символа.
Исходники функций прямого и обратного преобразования - https://bitbucket.org/budden/ppr/src/master/static/jarolit/
Буду благодарен за код ревью. Пока речь не идёт об упаковке в тот или иной «пакет». Наиболее интересно на данный момент, как сделать код более быстрым. Например, имеет ли смысл делать case по коду символа, а не по строковым значениями? С точки зрения правильности код выглядит правильным, но если увидите баги - пишите.