うぇいくさん
クジラ飛行机です。いろいろ確認してくださりありがとうございます。
ご指摘の通り、現状では、「5 * -1を表示」などはうまくいくのですが、
「A=5。5 * -Aを表示」などがうまく通りませんね。
たぶん、-の後の処理で、数字だけを認めているのかもしれませんので、確認してみます。
あと、ご指摘の通り、三つの関数の呼び出しが複雑になっています。
yGetArg
yCalc
yValue
これは、「(計算式)を表示」のように、関数の引数を取得する際に、計算を認めているため、yGetArgから、yCalcを呼びだすという感じになっており、yCalcの中でも、関数呼び出しに対応するために、yGetArgを呼ぶ・・・という複雑な感じになっています。なでしこの構文で、文脈の自由度を優先すると、複雑になりますね。
ちなみに、notは、"-"と同じくyValueの中で判定していますが、うぇいくさんの言うとおり、逆ポーランド変換の際に、-を考慮する方がスマートでしょうか。
ちょっと調べてみます。
ありがとうございます。
2017年8月28日月曜日 22時03分50秒 UTC+9 うぇいく: