トップページ > プログラム > 2015年03月22日 > 0xruUqhc

書き込み順位&時間帯一覧

20 位/154 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000040000000004



使用した名前一覧書き込んだスレッド一覧
片山博文MZ ◆T6xkBnTXz7B0
逆コンパイラCodeReverseを作る
C/C++の宿題片付けます 168代目

書き込みレス一覧

逆コンパイラCodeReverseを作る
262 :片山博文MZ ◆T6xkBnTXz7B0 []:2015/03/22(日) 14:04:56.12 ID:0xruUqhc
typed value実装を修正。
https://github.com/katahiromz/DoWonders

次は、マクロ展開を実装します。
C/C++の宿題片付けます 168代目
577 :片山博文MZ ◆T6xkBnTXz7B0 []:2015/03/22(日) 14:13:49.52 ID:0xruUqhc
QZさん、生きてますか!? 早い者勝ちでアマゾンギフト券5000円だぞ!!!

[1] 授業単元: 逆コンパイラ作成実習
[2] 問題文(含コード&リンク):

https://github.com/katahiromz/DoWonders
https://github.com/katahiromz/DoWonders/blob/master/tools/cparser/Main.cpp

tools/cparserの中にあるMain.cppのCrExpandMacro関数を実装せよ。
CrExpandMacro関数は、マクロを展開して文字列を返す関数になる。
CR_MacroSetとCR_Macroの定義は、Main.hにある。

struct CR_Macro {
int m_num_params;
std::vector<std::string> m_params;
std::string m_contents;
CR_Location m_location;
};
typedef std::unordered_map<std::string,CR_Macro> CR_MacroSet;

CR_Macroのm_num_paramsは、マクロの引数の個数を表す。
m_paramsは、仮引数の名前のベクターである。
m_contentsは、マクロ定義の中身である。
CR_Locationは、ソースの場所を表す構造体でLocation.hに定義されている。
必要ならば、別途、関数やクラスなどを追加してもいい。

[3] 環境
 [3.1] Windows
 [3.2] MSVC or TDM-GCC-64
 [3.3] C++
[4] 無期限
[5] なし
C/C++の宿題片付けます 168代目
578 :片山博文MZ ◆T6xkBnTXz7B0 [sage]:2015/03/22(日) 14:15:57.00 ID:0xruUqhc
補記:展開するマクロは、仮引数が0個であると仮定する。
C/C++の宿題片付けます 168代目
579 :片山博文MZ ◆T6xkBnTXz7B0 [sage]:2015/03/22(日) 14:16:46.05 ID:0xruUqhc
>>578は取り消します。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。