誰もがCソースコードから文字列を取り除くプログラムを指摘できますか?例Cソースコードからの文字列の削除
#include <stdio.h>
static const char *place = "world";
char * multiline_str = "one \
two \
three\n";
int main(int argc, char *argv[])
{
printf("Hello %s\n", place);
printf("The previous line says \"Hello %s\"\n", place);
return 0;
}
は、私が探しています何
#include <stdio.h>
static const char *place = ;
char * multiline_str = ;
int main(int argc, char *argv[])
{
printf(, place);
printf(, place);
return 0;
}
になり、私は文字列ではなく、コメントを削除したいことは、非常に多くのstripcmt だけのようなプログラムです。
あなたはすべてのコーナーケースを考慮し始めるとき(文字列内の引用符は、複数行の文字列など) 事が一般的になり始めるので、私はすでに開発されたプログラムを探しているだけでなく、いくつかの便利な正規表現しています理由は です(多くの)より複雑なものが最初に現れます。そして REが達成できるものには限界がありますが、私はそれがこの作業には不可能だと考えています。 あなたはと思っていれば、極度のの堅牢な正規表現を投稿しても構いませんが、提案は好きではありません。sed 's/"[^"]*"//g'
(ない法的C)埋め込まれた改行で複数行の文字列の
のサポートは重要ではありません(、それらが最初に削除されますコメント内の(おそらく非エンド)の文字列の特別な処理は必要ない)が、最後に\で終わる複数の行にまたがる文字列をサポートする必要があります。
これはsomeotherquestionsとほぼ同じですが、どのツールも参照できませんでした。
純粋に興味のあることとして、なぜこのようなツールが必要ですか?言い換えれば、ツールの出力で何をするつもりですか? –
トークン検索用です。たとえば、「どのファイルにx、y、zという関数がありますか」。あらかじめ処理してコメントや文字列を削除することで、正確な結果が得られます。現在のところ、ストリングはノイズを生成しています。 – hlovdal
Cを理解するコード解析ツールを使用する方が良いのではないでしょうか?それらの多くがあります。 –