ありがとうございます。やはり Devel::Cover は実行時の情報をキャプチャーして活用している
Tool Interactions
ユーザーは実行時の情報ではなく、B::Deparse を使って静的にコードの論理構造を解析し、真理値表を生成したいと考えています。
Devel::Cover のコードから学んだことを活かして、以下のようなサンプルコードを作成できます:
- B::Deparse を使って OP ツリーを走査
- 論理演算子 (and, or, xor, cond_expr) を検出
- 左辺と右辺のテキスト表現を取得
- 論理構造を構築
- 真理値表を生成
Devel::Cover の手法を参考に、静的解析版を作ってみましょう。
ポイント:
- B モジュールを使って OP ツリーにアクセス
- B::Deparse を使ってテキスト表現を取得
- logop のフックを参考に、論理演算子を検出
- 再帰的に走査して論理式の構造を把握
サンプルコードを書いてみます。
uuid: assistant: 791ebcef-3d98-4481-8414-121b2449cbe2