特定の C# ファイルからすべての文字列リテラルを抽出する必要があります。すべての条件付きコンパイル定数 ( など#if DEBUG
) は false と見なされ、ファイルは構文的に正しいと見なされます。単一行 ( "a\u1000b"
) と逐語 ( @"x""\y"
) の両方のリテラルをサポートする必要があります。
#if
最初は正規表現を使用しようとしましたが、ディレクティブ内の単一行および複数行のコメントと論理式を正しく処理する必要があることに気付きました。
そこで、独自の C# lexer を書き始める前に、既存のソリューションについてお聞きしたいと思います。