ASTのノードの検索を追加
Closed this issue · 1 comments
abap34 commented
例えば PyOdide が必要か調べるために ExecutableCodeBlock
が存在するか調べる、脚注として生成すべき数を調べるなどのためにノードの検索機能が必要.
- 検索の仕方 (ノードのマッチ条件の記述方法)
- 検索結果の表現方法
についてまず考える
abap34 commented
叩き台としての案
ast.find_class( {class名} )
ast.find_id( {id} )
などを作る. (JS の document.getElementsBy...
のイメージ)
例えば、PyOdide が必要か調べたかったら
ast.find_class("ExecutableCodeBlock"), ast.find_class("Judge")
で分岐する。
思っていること
- 性質で検索をかけづらい?
- 例えば、PyOdide が必要なのか調べたいなら "実行するもの" に対して検索をかけたい。今それをやるには、それが
ExecutableCodeBlock
とJudge
である、という知識が必要 - ある性質を満たす (ことが宣言されている) ものに対して検索をかけられるようにするとか、あるいは条件式を渡すとかができたら便利なことが多そう?ただ、検索がかけられがちなものは少ないことも予想できて、検索部分を複雑にするより、その辺を「便利メソッド群」として定義しておいて済ませる方が全体としては楽かもしれない。
- 例えば、PyOdide が必要なのか調べたいなら "実行するもの" に対して検索をかけたい。今それをやるには、それが