BASICのトランスレータを書く途上、パーサを一々手書きするのは面倒なので、ジェネレータを作成しました。 といっても、楽天が運営するポータルサイト : 【インフォシーク】Infoseekで解説されているようなパーサを自動生成するものなので、左再帰は対応できませんし、構文解析の前に字句解析を行わなくてはなりません。 文法定義 以下は、加減乗除冪を含む数式の文法定義です。 var parser = new Parse.Parser(); parser.def({ expr: "add %end", add: "mul (($+ | $-) mul)*", mul: "pow (($* | $/) pow)*", pow: "fact ($^ fact)*", fact: "($+ | $-)?:sign ( $num | $( add $))", }); var tokens = tokeni