その前に前の記事の訂正.
MakeFuncList_*** 以外に MakeTopicList_*** というのもあります.
あと,MakeFuncList_***はCEditDoc_***.cpp という別のファイルにもあって,特にCはCEditDoc_FuncList1.cppという専用のファイルに入っています.
文法が複雑なC++の解析のために中身はかなり複雑になっています.またヘッダファイルを読み込まないので,こんなパターンは関数だろうというヒューリスティックな手法も使っています.
最初に#ifdef-elseのプリプロセッサ解析を行います.プリプロセッサによって削除される部分はこの時点で空行に変換されます.
そこで残った行を順番に見ていきます.やっていることを一言で言えば状態遷移表を出現文字によってたどっていき,必要な文字列を保存して後で使います.
nMode, nMode2といった変数がありますが,この中に入っている値が現在の状態です.値の意味は一応書いてありますが,詳しく知りたいなら実際にステップ実行してみてください.
ネームスペース,クラスや{}のネストは配列をスタックとして使います.
---
他に具体的に知りたい点があればまた質問してください.