-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
define-syntax を実装する。
設計
- パースのマクロの展開を同時に行う。
- R5RS では、
define-syntaxはトップレベルにしか置けないという制約があるので、パース前にdefine-syntaxを拾ってきて解釈することもできるが、R7RS ではトップレベル以外にも置くことができ、場所によってマクロのスコープが変わる。R7RS に将来的に対応することを視野に入れると、パースと同時にマクロを展開したほうがよい。
- R5RS では、
- マクロを表すクラス
Transformerを作る。define-syntaxひとつに対してTransformerひとつが対応する。Transformerは書き換えルールを内部に保持し、与えられた S 式をルールによって変換することができる。
- グローバルな
Transformerは実行時も保持する。evalのため。- GC の対象にはしなくてよい。
Reactions are currently unavailable