3

#includeブーストスピリットパーサーでC++のメカニズムのようなものをサポートしたいと思います。基本的に、ファイルからサブスクリプトをロードするようにパーサーに要求するスクリプトコマンドがあります。ポストの解析中に入力位置の追跡で説明されているエラーメッセージを報告できるようにしたいのですが、複数の入力の解析については説明していません。

これは、を使用して合理的に達成できますboost::spirit::qiか?

私は、よりスマートなイテレータタイプを使用して、さまざまな入力を取得することに取り組んできました。それでも正確なポジショニングを見たいです。

4

1 に答える 1

1

私見、スマートイテレータを使用するのが道です。実行する必要があるのは、イテレータによって維持される入力コンテキストのスタックを持つことです。各入力コンテキストには、特定のファイルに関連する情報が格納されます。

新しいファイルを読み取る必要があるときはいつでも(つまり、#includeステートメントを見た後)、新しい入力コンテキストが作成されます。現在の入力コンテキストはスタックにプッシュされ、新しいコンテキストはアクティブなコンテキストになります。EOFで、スタックから次の入力コンテキストをポップし、の直後のポイントに戻ります#include。スタックが空の場合は、メインファイルのEOFに到達しています。

いずれの場合も、イテレータはアクティブな入力コンテキストからのみ入力を取得します。

于 2010-07-02T00:59:36.450 に答える