■
よし、適当にネタを思い付いたのでやってみるか。と、思ったんだけど、今のILogでは式のパースが面倒だ。再帰下降で二項演算子をやるのはちょっとよくない。
と、いうわけで、演算子順位をうまくやってくれるライブラリでも作るか。演算子順位法は、調べた感じでは、そんなに難しそうではなかった。まだ二項演算子しかわからんけど。
目標は
var table = [ [[TOK_MULT,MULT_EXPR], [TOK_DIV, TRUNC_DIV_EXPR]], // [[TOK_PLUS,PLUS_EXPR], [TOK_MINUS,MINUS_EXPR]], // プラスとマイナスは同じ優先順位。乗除算よりは低い ]; var parser = Parser.gen_parser( table, callback ); // callbackは終端記号に至ったら呼ばれる parser.parse( lextable );
こんな感じで書けるように。