trans_impl.pl

trans_impl.pl

  • 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での生成が怪しくなる
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy