1

私の知る限り、PetitParserは、テキストを解析するためのグラマーとアクションを定義できるパーサーです。

組み込みの JSON パーサーを使用して JSON 文字列を解析することに成功しましたが、さらに多くのことを行いたいと考えています。JSONをきれいな印刷スタイルにフォーマットできるJSONフォーマッターを書きたいです。

しかし、私は何をすべきかわかりません。いくつかのノードを作成し、解析された JSON のツリーを構築する必要がありますか? そして、それを行う方法は?

いくつかのサンプルを探していますが、まだ見つかりません。

4

1 に答える 1

2

PetitParserは、きれいな印刷を直接支援するわけではありません。

特定の例では、パーサーが返すマップとリストをトラバースし、必要に応じて出力するコードを記述できます。

別の方法として (一般に、より複雑な文法の場合)、JsonGrammar をサブクラス化し、カスタム解析ノードの AST を生成することもできます。次に、ビジターを記述するか、ノードを再帰的にトラバースして、それに応じてデータをフォーマットします。XML パーサーはまさにそれを行います。

Smalltalk 用の PetitParser には、PrettyPetitと呼ばれる小さなフレームワークが付属しており、ブロック レイアウト エンジンで文字列を最適に配置、ラップ、整列するのに役立ちます。ただし、このようなフォーマット命令を生成するプロセスは、上記のように手動で行う場合と同じです。

于 2013-06-21T17:50:05.617 に答える