2007/09/10(Mon)文字列で書かれた式を解釈したい

はてブ数 2007/09/10 9:34 プログラミング::HSP3 つーさ

HSPでさ "1+1*2" = 3 になったらうれしくね?

つい最近同じことをqofでやったんだわ。
ステージスクリプトを読み込んで計算式とか処理すんの骨折れたっつか、計算機作ってる時間なかったから。
あとは、変数展開をさくっと組み込めばいろいろと楽しいんじゃね?

// ExpressionEvaluator
// 式はJavaScript(JScript)の文法に則って書く必要がありますが、文字列式の評価ができます。
#module ExpressionEvaluator
#deffunc init@ExpressionEvaluator
newcom mssc, "MSScriptControl.ScriptControl"
comres ret
mssc("Language")="JScript"
return
#defcfunc Eval str exp
_exp = exp
mssc->"Eval" _exp
return ret
#global
init@ExpressionEvaluator
// おわり

mes "1+5*2⇒" + Eval("1+5*2") + "です。"
mes "1!=2 ⇒" + Eval("1!=2") + "です。 真:-1 偽:0 に注意かも"
mes "1/2  ⇒" + Eval("1/2") + "です。整数型にするにはint()しないと×"