- Interfaceの定義とInterfaceの実装の定義(ヘッダファイル)を参照して、CbCの雛形を生成するスクリプト
#
実行方法
trans_impl.pl
に実装側のヘッダファイルを通すことで生成できます
perl trans_impl.pl SingleLinkedStack.h
-w
オプションを付けることで、同名の.cbc
ファイルが生成されます
perl trans_impl.pl -w SingleLinkedStack.h
-o
オプションを付けることで、生成するファイル名を指定できます
perl trans_impl.pl -o single_linked_stack.cbc SingleLinkedStack.h
#
生成されたファイル
- 特にオプションを指定しないと標準出力に出力されます
perl trans_impl.pl SingleLinkedStack.h | pbcopy
#
実装に関して
- trans_impl側に直書きしている処理と, ライブラリ化した
Gears::
名前空間のモジュールをいくつか利用している
- 引数で入力されたヘッダファイルをまずパースして、使用しているInterfaceを特定する
- Perlの中で実行しているディレクトリを再帰的にたどって、ヘッダファイルを探す
- このときに同じ名前のヘッダファイルがあると衝突する
#
TODO
- 実装側の
__code
は別ファイルに書き出すようにしたい
- 同じファイルの場合はgenerate_stubでの生成が怪しくなる