原点に戻る。plyでminilispを実装します。 紹介の意味も込めて某所にあったのをほぼそのまま載せます。 plyのシンプルさ(Lispのシンプルさ?)がわかってもらえるかと思います。 minilisp_lex.py import ply.lex as lex tokens = ('QUOTE', 'SIMB', 'NUM', 'LPAREN', 'RPAREN', 'NIL', 'TRUE', 'FALSE', 'TEXT') reserved = { 'nil' : 'NIL', } t_LPAREN = r'\(' t_RPAREN = r'\)' t_QUOTE = r'\'' t_TRUE = r'\#t' t_FALSE = r'\#f' def t_NUM(t): r'\d+' try: t.value = int(t.value) except ValueError: p