py2hy はpythonのプログラムをhyに変換するツール.古いバージョンのhyで書かれていたため最新版(hy ver0.18)のhyで動かなくなっていた.これを0.18で動くようにした.
主な変更点は以下
- 古いhyでは lforがlist-compとリネームされているので,list-compがlforに置き換わるマクロを 書いた.
- 変換したコードのインテンドを揃えるためにemacsをシェルから呼び出している
install
git clone https://github.com/niitsuma/py2hy
cd py2hy
pip3 install -e . --user
usage
py2hy demo/game.py > game.hy
demoのディレクトリにあるpythonプログラム2つは,そのまま変換したものがhy0.18で動くようにした.
ただし全部のコードがほぼ1行の改行なしで出力される.
(,.が化けるが)改行が適切に入る以下のスクリプトも用意した.
py2hy.sh demo/game.py > game.hy
これは綺麗に改行してくれるけれど,emacsがhyのコードをelispと仮定して余計な変換をかけてくるので,変換後にいろいろ手直しが必要です