Boost Spiritライブラリは、解析中に入力位置を追跡することを許可します。このメカニズムにより、解析中にパーサーエラーの場所を通知できます。
将来の使用のために、解析されたすべてのエンティティの元の場所をそれらと一緒に保持したいと思います。(たとえば、ASTセマンティック検証。)これを行うための推奨される方法は何ですか?
ありがとうございました!
Boost Spiritライブラリは、解析中に入力位置を追跡することを許可します。このメカニズムにより、解析中にパーサーエラーの場所を通知できます。
将来の使用のために、解析されたすべてのエンティティの元の場所をそれらと一緒に保持したいと思います。(たとえば、ASTセマンティック検証。)これを行うための推奨される方法は何ですか?
ありがとうございました!
すべてのエンティティの位置が必要な場合は、一致した入力に関する位置情報をオプションで保持するトークンを生成するレクサーを使用する方がよい場合があります(ここを参照)。レクサーがオプションでない場合は、新しいon_success()
構成(SVNで使用可能またはBoost V1.47以降で使用可能)を利用できます。これはon_error()
、指定されたハンドラーが関連付けられているルールの解析が成功したときに呼び出されることを除いて、と同様に機能します。 。それがどのように機能するかを確認するための想起の例。