001. chk_macro.rb

公開先:https://github.com/mwnock/hdl_tools

概要:

  • UVMクラスライブラリ(OVMでもおそらく動作可)を読み込んで、以下の処理を行うツールです。
    1. macro名を入力して、そのmacro定義と記述ファイル名と行番号を表示する
    2. 指定した文字列を含むmacroをサーチして、リスト表示する

動作確認:

  • ruby 1.9.3p448
  • UVM-1.1d

制限事項:

  • 対応しました → 文字コードにマルチバイトが含まれていると、Errorになりますので、クラスライブラリ側の修正ができる方は修正してください。コード側での対応はまだ考えていません。(単なる勉強不 足)

説明:

  1. 使う前に
    • 1行目のrubyパスを直してください
    • 3行目のdirectory変数を修正してください

使い方:

  • ./chk_macro.rb [enter]
    • プロンプトで、参照したいmacro名を入力してください。macro定義が表示されます。
    • プロンプトで、「list 正規表現」を記述すると、正規表現にマッチしたmacro名を一覧表示します。
      • 例:> list decl → "decl"を含む全てのmacro名を一覧表示します。
      • 例:> list decl$ → "decl"で終わるmacro名を一覧表示します。
      • 間違う例:> list *decl → NG。正規表現文法として不適切なため。

補足:

  • プロンプトから直接macro名が入力されたときは、その文字列をhash keyとして参照します。この場合、正規表現が使えません。
  • プロンプトから list コマンドを使って調べるときは、第2ワードを正規表現のパターンマッチングで扱いますので、正規表現が使えます。ただし、すべての正規表現が使えるかどうかは不明です。
  • 不適切な正規表現が指定されると、例外処理でErrorメッセージを出力します。この場合はツールは落ちません。
  • マルチバイト文字を含む行を読み込んで例外が発生すると、発生した行の情報をError表記とともに表示しますが、ツールは落ちないようにしました。