ようこそゲストさん

つーさのくーかん -再誕-

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()しないと×"

1: eller 2008年03月01日(Sat) 午後7時27分

こんにちは、ellerと申します。こちらのブログにトラックバックが備わっていないので、コメントにて失礼します。

記事「日数計算・曜日計算」にて、JavaScriptの実行方法の参考とさせていただきました。
処理はほとんど流用で、ExpressionEvaluatorの「機能制限版」とでも呼ぶべきものです。もし公開すべきでない場合はお手数ですがお知らせくださるようお願いいたします。
http://rpen.blogspot.com/2008/03/blog-post.html

2: つーさ 2008年03月02日(Sun) 午後3時49分

一応、トラックバックURLは以下に示していますが^^;
日付計算プログラムは、HSPだけで書いたことがありますが、
JScriptが使えるとなるとそれもまた便利ですね。
こちらこそ参考になりました。ありがとうございました。

3: eller 2008年03月03日(Mon) 午前10時14分

あ、ごめんなさい、「こちらのブログ」とは「私のブログ」のことです。失礼しました。
Googleのブログなのに(だから?)、TBが備わっていないのです。

HSPで細かいプログラムを書くのは面白いですし勉強になるのですが、外部に頼めることは頼んでしまったほうがバグを設ける機会も減りますし早くできて便利ですよね。
Javascriptにはいろんなことを頼めそうです。

4: つーさ 2008年03月05日(Wed) 午前5時38分

そういうことでしたか、こちらこそ失礼いたしました。
しかし、最近は広告TBばかりなので、もうTB受け付けるのやめようかなとか思っていたり(笑

> HSPで細かいプログラムを書くのは...
やはり自分で作るのは楽しいです。
かといって、それでは生産性や効率の面から見たとき遠回りになることも。
私は、作りたいのか作り上げたいのか、なんてよく言うのですが、
その時々の用途に合わせて、いろんな手段を提供してくれるのが、HSPの良さだと思います。


名前:  非公開コメント