pymacsを使ってdefmacroをpythonで使えたらいいのになあ?
pymacsはemacs lispとpythonの双方向インターフェイスだ。詳しい使い方は以下。
(pymacs-exec "import re") (setq matcher (pymacs-eval "re.compile('PATTERN').match")) (pymacs-call matcher ARGUMENT)
(このコードの詳しい解説はここ http://pymacs.progiciels-bpi.ca/pymacs.html#python-handles)
文字列としてpythonのコードを評価するだけなようだ。この形式の場合は
http://www.shido.info/lisp/macro2.html
で紹介されているような
(pymacs-exec "<python code> <EXPANDED MACRO>(<python code>)"))
のような使い方をすることはできるのだろうか? こんなことならできそうな気もするが今ひとつ納得がいかない。
(setq expoerted-python-func (pymacs-eval "PYTHON CODE")) (defmacro macro-foo (var) (... exported-python-func ...) ) ;varをどうやってexported-python-funcに渡す? ( ... (macro-foo ...)...)