演習として pyparsing を使用して統合差分ファイルを解析しようとしていますが、うまくいきません。ここに問題を引き起こしている差分ファイルの部分があります:
(... some stuff over...)
banana
+apple
orange
最初の行は " " で始まり、次に "banana" です。行を解析するための次の式があります。
linestart = Literal(" ") | Literal("+") | Literal("-")
line = linestart.leaveWhitespace() + restOfLine
これは単一行を解析するときに機能しますが、ファイル全体を解析しようとすると、「leaveWhitespace」命令によってパーサーが最後の行の終わりから開始されます。私の例では、「バナナ」を解析した後、次の文字は「\n」(leaveWhitespace のため) であり、パーサーは「」または「+」または「-」と一致させようとするため、エラーがスローされます。
どうすればこれを正しく処理できますか?