Python用のコンパイラスクリプトを書いています。トレースバックを正しく解析する次のエラー形式があります。
CompilerSet errorformat=
\%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,
\%Z\ \ \ \ %m
カンマの前に余分なエスケープが必要な理由がわかりません。なぜできないのです\"%f\"\\,
か\"%f\"\,
?エラー形式のセクションを区切るために使用されるため、カンマをエスケープする必要があることは理解していますが、なぜ2つの円記号があるのでしょうか。
シングルエスケープは機能しないが、ダブルエスケープは機能するトレースバックの例を次に示します。
Traceback (most recent call last):
File "test.py", line 9, in <module>
g()
File "test.py", line 7, in g
f()
File "test.py", line 4, in f
raise IndexError()
IndexError
もう1つの同様の例は、3つの円記号を使用するこのPythonコンパイラスクリプトです。
(理由を理解することで、より多くの設定を簡単に記述できるようになることを願っていefm
ます。)