命令の引数を文字列から整数に変換したときエラーが起きないように修正。 (
r189)(
@357)
関係ない所を修正していたので、もう一回コミット。
# なんかDelphiのデバッガがちゃんと変数の値を更新してくれていなかったのか、
# 激しく勘違いしてしまいました、すみません。なんでだろう・・・
ひとまず、整数に変換した時だけで型を保持するようにして、様子を見る。
@今回の変更(メモ)
・なでしこは、AddFuncでシステム命令を登録している
例)
AddFunc ('NOT', '{整数}A', 291, sys_not, 'A=0のとき1を違えば0を返す','NOT');
・この'{整数}A'の{整数}部分のように型指定をしてあると、
構文木から命令を実行する際に型チェック&キャストする
・ところがこのとき、型名(VType)を変更していない?
→今回の修正では、この型名をきちんと「整数(varInt)」に変更するようにした
・型名が変わっていないまま実行すると、再び「文字列→整数」のように変換しようとする
→実際には既に整数型に変換されているので、ここでエラーが起きていた
以上、何かおかしかったら指摘してください。
問題ないようであれば、他の型(文字列など)のキャストにも同様の修正を加えます。