3

Treetopで解析したいファイルがあります。全体を解析したい場合は、

rule document
  category_listing*
end

ファイル全体を一度にメモリに読み込みたくありません。パーサーを一度に1つずつ解析するように設定できることはわかっていますcategory_listing#consume_all_input = falseとを使用#root = :category_listing)。これは問題の半分です。#parseただし、渡されることを期待しているように見えますString(そして、渡そうとすると必ず失敗します)。これにより、PITAのような音Fileで読み取りと解析を行うことがcategory_listingできます。category_listing

Treetopはsの解析にのみ使用できますStringか?私はツリートップのドキュメントをざっと見てきましたが、決定的なものは何も見つかりませんでした。

4

1 に答える 1

0

ソースコードから見る限り、実際には文字列のみを渡すことができます。したがって、オプションは基本的に、コメントで Josh Voigts のアイデアに従うか、逆の IOString を実装するかのいずれかです。つまり、文字列を持つものです。インターフェイスですが、要求されたコンテンツをファイルから「遅延」フェッチします。

Cに頼らなくてもそれが可能かどうかは完全にはわかりません。それでも、セマンティクスが一貫して実装できないようなメソッドが存在する可能性がありますが、おそらくTreetopで使用されるStringメソッドのサブセットは管理しやすいものです. ただし、Josh Voigts の回答は最も実用的だと思います。

于 2012-12-25T11:01:07.837 に答える