4

パーサーの警告を報告するには? エラーの報告に似ていますが、パーサーは停止してはなりません。警告メッセージのみをログに記録し、副次式が警告を引き起こしました。

入力例:

 select * from table where row>='' && row<>'hello'

期待される出力:

 Warning: expression is always true: row>=''
 Warning: && is deprecated, use AND: row>='' && row<>'hello'
 Warning: <> is deprecated, use !=: row<>'hello'
4

1 に答える 1

4

解析を続けたい場合はaccept、ハンドラー ポリシーとして指定する必要があることを除いて、以前と同じようにエラー ハンドラーを登録できます。

rule<Iterator> r = ... > !eps;
on_error<accept>(r, handler);

追加され> !epsた は、どのような場合でもエラーを強制し、handler通常どおり を呼び出しますが、「エラー」の後に一致を受け入れ、何も起こらなかったかのように続行します。

于 2011-05-26T12:55:27.733 に答える