モジュールとルール
今度は、モジュールを考慮しながら変数/ルールテーブルを再設計しています。
変数に関してはモジュール毎にテーブルを持つだけで済みそうなのですが、ルールは少々複雑です。
- ユーザー定義のルールと組み込みルールがある
- 組み込みルールIMPORTにより、他のモジュールに別名が定義される
- インポートされたモジュールはインポート元のモジュール環境内で実行されるので、モジュール名を覚えておく必要がある
2.は別名というよりコピーに近く、インポート時点でのルール定義が保持されるようです。
module A { rule my_rule { ECHO 1 ; } } # モジュールAのmy_ruleを同名で現在のモジュールにインポート IMPORT A : my_rule : $(__name__) : my_rule ; my_rule ; # 「1」を出力 module A { # ルールの再定義 rule my_rule { ECHO 2 ; } } my_rule ; # 「1」を出力、「2」ではない
普通、こんなことしないと思いますけどね。