2013-01-16 11 views
6

私はJSON encoder/decoder for Rebol 2と書いています。私はREBOLの3のためにそれを書き換えることだし、codecとしてREBOLの3で、それを利用可能にすることを好む:Rebol 3のコーデックはどのように作成しますか?

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

私はこれについてどのように行くべき?

質問の時点で、この件に関するドキュメントが不足しています。

答えて

5

簡単な答えはできないということです。理由は、それにはいくつか答えがあります。

  1. 現在のコーデックモデルは文書化されていません。カールだけが現時点でコーデックを書く方法を知っています。誰かがソースを見てそれを理解することができるかもしれないが、まだ誰もいない。
  2. 現在のコーデック機能は、あなたがここで必要なものを作成するのに十分柔軟ではありません。 encodeは画像、バイナリ、または文字列しか取り込まないので、デコーダを作成できますが、エンコーダは作成できません。たぶんデコーダを持っているだけで十分です。
  3. ネイティブコーデックのみが現在のモデルでサポートされています。 Rebolコードにコーデックを書き込むことはできません。つまり、parseを使用できないことを意味するパーサーには書き込めません。パーサーのネイティブコード版はありますか?
  4. 現在のコーデックモデルは、最終的に期待しているコーデックモデルのプレースホルダです。これがそれが十分に文書化されていない理由です。最終的には、ファイルやその他のポートから直接読み取れるコーデック、Rebolコーデックなど、インクリメンタルエンコード/デコードをサポートしたいと考えています。しかし、我々は最終的なモデルをまだ決定していないし、初期の批評を超えて、それがどのように設計されるかについての議論を始めた。

私はあなたの質問に今すぐより良い答えがあったと思います。ツールがあり

+0

(現在読める)議論が行われた場所はありますか? – kealist

2

、これを読んで:http://rebol2.blogspot.it/2012/12/json.html

と、これを: http://www.rebol.com/article/0522.html

しかしJSONはデータを処理するための複雑な方法で、REBOLブロックは、私の愚見で完璧です。

+0

最大、彼はすでにJSONパーサーを持っています。彼は彼の質問でそれをリンクしました。問題は、そのJSONパーサをR3用のコーデックに変更することです。 – BrianH

0

システム/カタログ/コーデックはRebol 3から削除されました。その機能は2009年3月31日以降に削除されたと思います。

>> ? 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 
+0

いいえ、私たちはちょうどシステムを数回再編成しました。 'system/catalog/codecs'はある時点で' system/codecs 'となり、構造も同じです。機能はまだそこにあります。しかし、最初からメザニンコーデックを作ることは決してできませんでした。 – BrianH

4

コーデックは非常に未仕上げの状態であった。私はIIRC Carlが必要性を理解していたが、何らかのストリーミングメカニズムが必要であると提唱しましたが、解決策は決して説明されませんでした。タスクのための同意 - 現在の "実装"は、R3のタスクのためにCarlが想像したものとはまったく異なります。

+0

あなたはこれらの情報のために何かを与えることができますか? – Nicktar

+0

彼はソースです。 Pekrと私は当初R3に取り組んでいたチームにいました。彼の役割は、私たちが混乱していること、または正しく行かなかったことを指摘することでした - それは侮辱ではなく、実際にはそれを本当によくしています。彼は当初、現在のコーデックモデルの欠陥を指摘し、新しいモデルが持っていなければならない能力について最初の提案をしたが、現在のモデルはそうではなかった。あなたは彼の言葉を受け入れることができます。 – BrianH

関連する問題