yecc/leex で簡易的な電卓を作ってみた
reia の Source を追ってる途中、気が向いたので yecc と leex を使い yacc/lex で言うところの "Hello World." 的な儀式である電卓を作りに挑戦してみました。
gist: 13773 - GitHub
reia の Source に付属する escript で書かれた yecc と leex へのラッパーコマンドが何気に便利なので、それを利用すると良いかも。
(ここで配布されている最新の leex と reia と共に配布されている leex はバージョンが異なるようですが、ラッパーコマンドは動作します)
$ leex calc_scan.xrl $ erlc calc_scan.erl $ yecc calc_parse.yrl $ erlc calc_parse.erl $ erlc calc_eval.erl $ erl 1> {ok, Scan, _Line} = calc_scan:string("(1 + 2) * 3 - 4"). 2> {ok, Exp} = calc_parse:parse(Scan). 3> calc_eval:eval(Exp).