ありがとうございます。やはり Devel::Cover は実行時の情報をキャプチャーして活用している

Tool Interactions

ユーザーは実行時の情報ではなく、B::Deparse を使って静的にコードの論理構造を解析し、真理値表を生成したいと考えています。

Devel::Cover のコードから学んだことを活かして、以下のようなサンプルコードを作成できます:

  1. B::Deparse を使って OP ツリーを走査
  2. 論理演算子 (and, or, xor, cond_expr) を検出
  3. 左辺と右辺のテキスト表現を取得
  4. 論理構造を構築
  5. 真理値表を生成

Devel::Cover の手法を参考に、静的解析版を作ってみましょう。

ポイント:

  • B モジュールを使って OP ツリーにアクセス
  • B::Deparse を使ってテキスト表現を取得
  • logop のフックを参考に、論理演算子を検出
  • 再帰的に走査して論理式の構造を把握

サンプルコードを書いてみます。


uuid: assistant: 791ebcef-3d98-4481-8414-121b2449cbe2