一部の方は既にご覧になられていたと思いますが、昨日一旦Calcのコードを掲載しましたが、その後致命的なバグが発見され、取り急ぎブログを取り下げさせていただきました。
その時気が付いたバグとは、TryCalcが自分で整数化できないオペランドをTryMulDivに渡し、同様にTryMulDivは自分で整数化できないオペランドをTryCalcに渡す構造をとってしまった為に、「決して整数化できない文字列」(即ちユーザーエラー、例:「演算式に"abc"と入力したような場合」)は
「堂々巡り」からスタックオーバーフロー
となることです。
この問題は既に解決しておりますが、もう一つ「(オペランドが連続する「演算子抜け」エラーは検知できますが)オペランドが無くて、演算子が連続する
「オペランド抜け」エラー
(例:「演算式に"-3 * + 2"と入力したような場合」)」が未対応であったことが判りました。これに対しても(不承不承ながら)フラグ対応で解決しました。
が、
「これで一安心」と思ったのもつかの間、「(演算子は連続しませんが)演算子後、オペランドが来ない
「オペランド抜け Part II」エラー
(例:「演算式に" 2 * 4 - 3 +"と入力したような場合」)」が未対応であることに気が付きました。
と、いうことで、
Calcのコード公表までもう少しお時間をください。
スミマセン...