一部の方は既にご覧になられていたと思いますが、昨日一旦Calcのコードを掲載しましたが、その後致命的なバグが発見され、取り急ぎブログを取り下げさせていただきました。

 

その時気が付いたバグとは、TryCalcが自分で整数化できないオペランドをTryMulDivに渡し、同様にTryMulDivは自分で整数化できないオペランドをTryCalcに渡す構造をとってしまった為に、「決して整数化できない文字列」(即ちユーザーエラー、例:「演算式に"abc"と入力したような場合」)は

 

「堂々巡り」からスタックオーバーフロー

 

となることです。

 

この問題は既に解決しておりますが、もう一つ「(オペランドが連続する「演算子抜け」エラーは検知できますが)オペランドが無くて、演算子が連続する

 

「オペランド抜け」エラー

 

例:「演算式に"-3 *  +  2"と入力したような場合」)」が未対応であったことが判りました。これに対しても(不承不承ながら)フラグ対応で解決しました。

 

が、

 

「これで一安心」と思ったのもつかの間、「(演算子は連続しませんが)演算子後、オペランドが来ない

 

「オペランド抜け Part II」エラー

 

例:「演算式に" 2 * 4 - 3 +"と入力したような場合」)」が未対応であることに気が付きました。

 

と、いうことで、

 

Calcのコード公表までもう少しお時間をください。

 

スミマセン...