2013/01/01

JavaScript S式パーサ "S.js"を公開

General Game Playing (そのうち話す)の中でHTTPでS式をやりとりする話が出てきたのですが,JavaScriptによるS式のパーサが見当たらないので書いてみました.
https://github.com/na2hiro/S.js

パーサジェネレートはJisonを使用.
そのパーサはTypeScriptで書いたオブジェクトをツリー状に構成して返すようにしました.
Jisonの出力したパーサのjsと,TypeScriptのコンパイル後のjsを,単純につなげるだけでnodejsでrequire可能なファイルになっていて分かりやすかったです.外から見えるようにしたいもの(exportしたいもの)についてはtsファイル中の関数宣言または変数名にexport修飾子をつけるだけでok.

内容ですが,
(1 2 (3 . (4)) 5)
といったS式をパースし,
["1", "2", ["3", "4"], "5"] //配列をリストとみなすList array方式
["1", ["2", [["3", ["4", []]], ["5", []]]]] //配列を対とみなすCons array方式
のような配列を返したり,またその逆で配列をS式の文字列に直したりできたりします.

0 件のコメント: