0

次の問題を解決する方法についてアドバイスをくれる人はいますか?

この問題の考え方は、ファイルをスキャンして、Foo.cすべての変数、それらが何回発生したか、およびそれらが発生した行を見つけることです。

実装は、少なくとも 1 つのメソッドに含めることができます。

  1. 問題を解決するために、bat スクリプトを作成し、最終的に追加の C プログラムを作成します。コマンド ウィンドウで実装を実行します。

  2. 問題を解決するために、ps1 スクリプトを作成し、最終的に追加の C プログラムを作成します。PowerShell ウィンドウで実装を実行します。

4

3 に答える 3

1

変数の宣言と使用をすべて取得し、変数の宣言と使用のみを取得するには、ソース ファイルを少なくとも部分的に解析し、結果の抽象構文ツリーを分析する必要があると思います。

最初のステップは、パーサーを作成するか、既存のパーサーを利用する方法を理解することです。

于 2012-04-04T05:07:28.753 に答える
0

確かにこれをバット スクリプトとして書こうとすることもできますが、信じてください。私は 200 近くのバット スクリプトを書きましたが、それは恐ろしいことです。cmd.exe の findstr はあなたの友達ですが、バットと正規表現の間では気が狂ってしまうでしょう。Powershell の方が間違いなく優れていますが、perl、ruby、python などの実際のスクリプト言語が最適です。

幸いなことに、とにかくあなたの場合、C のすべての var は明示的に宣言されているため、すべての var 宣言を一度スキャンしてそれらの配列を作成できます。次に、これらの変数名のインスタンスを探してもう一度スキャンします。最初は var 宣言であるため、インスタンスの総数は total_times_seen -1 になります。もちろん、これは一度だけ宣言されることを前提としています...

于 2013-12-14T00:51:28.177 に答える
0

C# をプログラミングしている場合は、ANTLR V3を使用して「C」文法が存在するソースを解析できます。

于 2012-04-04T09:06:58.027 に答える