Scm_FindBinding 手続き
見直してみる事に。
ココによれば引数 symbol の束縛を以下の順で探索との事。
- 引数 module から探す
- 引数 module の imported 属性が指すリストの各要素の親モジュールのリストから探す
- 引数 module の親モジュールのリストから探す
ちょっとへろへろなので、一番単純なケイスから確認。一番単純なのは以下?
- そのいち
- Scm_HashTableRef 手続きの戻りがなんであれ、引数 flag が 0x1 と & して 0 になる場合 (!stay_in_module が真)
- このケイスでは Scm_HashTableRef 手続きの戻りを SCM_GLOCP マクロに渡した結果が偽だった場合は NULL が戻る
- そうで無い場合には、上記の Scm_HashTableRef 手続きの戻りを SCM_GLOC マクロに渡した値が戻る
- Scm_HashTableRef 手続きの戻りがなんであれ、引数 flag が 0x1 と & して 0 になる場合 (!stay_in_module が真)
本当? (を
コメントには_最初に引数で指定された (意訳) module から探索_とある。あと、(!stay_in_module) な状態というのは引数の flags 正にが 0 (末端ビットが 0) という事になりますかそうですか。
ポイント高いのは以降のはず。