Как вы пишете кодек для Rebol 3?

Я написал кодировщик / декодер JSON для Rebol 2. Я переписываю его для Rebol 3 и предпочел бы сделать его доступным в Rebol 3 в качестве кодека:

load %data.json
save %data.json object
decode 'json to-binary {["some","json"]}

Как я должен идти об этом?

На момент запроса документации по этому вопросу мало.

4 ответа

Решение

Простой ответ заключается в том, что вы не можете. Что касается того, почему есть несколько ответов на это.

  1. Текущая модель кодека не документирована. Только Карл знает, как писать кодеки на данный момент. Хотя кто-то мог бы посмотреть на источник и выяснить это, никто еще не смог.
  2. Текущие функции кодека не достаточно гибки, чтобы делать то, что вы хотите здесь. Вы можете сделать декодер, но не кодер, потому что encode принимает только изображения, двоичные файлы или строки. Может быть, вам достаточно иметь декодер.
  3. Только собственные кодеки поддерживаются текущей моделью. Вы не можете писать кодеки в коде Rebol, а для парсера это означает, что вы не можете использовать parse, У вас есть версия вашего парсера с собственным кодом?
  4. Текущая модель кодека является заполнителем для модели кодека, которую мы надеемся в конечном итоге получить. Вот почему это не было так хорошо задокументировано. В конечном итоге мы надеемся поддерживать инкрементное декодирование / декодирование, кодеки, которые могут считывать данные непосредственно из файлов или других портов, и кодеки Rebol. Однако мы еще не определились с окончательной моделью и даже не начали обсуждение того, как она будет разработана, за исключением первоначальной критики.

Хотелось бы, чтобы был лучший ответ на ваш вопрос прямо сейчас.

Кодеки были имо в крайне незавершенном состоянии. Я предположил, что нужен какой-то механизм потоковой передачи, IIRC Карл понимал необходимость, но решение никогда не было в общих чертах. То же самое для задач - текущая "реализация" далека от того, что Карл предполагал для задач R3...

Есть инструмент, прочитайте это: http://rebol2.blogspot.it/2012/12/json.html

и это: http://www.rebol.com/article/0522.html

Однако json - сложный способ обработки данных, по моему скромному мнению, блок rebol идеален.

Я только что заметил, что система / каталог / кодеки удалены из Rebol 3; поэтому я предполагаю, что эта функция была удалена после 31 марта 2009 года.

>> ? system/catalog
SYSTEM/CATALOG is an object of value:
 datatypes       block!    length: 56
 actions         block!    length: 56
 natives         block!    length: 159
 errors          object!   [Throw Note Syntax Script Math Access Command...
 reflectors      block!    length: 6
 boot-flags      block!    length: 18
Другие вопросы по тегам