hra1129 / msx_basic_compiler

MSX-BASICコンパイラ
MIT License
22 stars 2 forks source link

実数型変数と整数型定数との関係演算の結果が不正 #2

Closed NasubiKT closed 10 months ago

NasubiKT commented 10 months ago

以下のテストコードを実行すると、整数型変数と整数型定数との比較結果は問題ありませんが、実数型変数と整数型定数との比較結果が、想定とは逆の結果となります。

テストコード

10 A%=4:PRINT (A%>191)
20 A%=4:PRINT (A%<191)
30 B!=4:PRINT (B!>191)
40 B!=4:PRINT (B!<191)
50 C#=4:PRINT (C#>191)
60 C#=4:PRINT (C#<191)

実行結果

 0
-1
-1
 0
-1
 0
hra1129 commented 10 months ago

左右の項の型を揃えるコードを生成スルーチンにバグがあり、 状況に応じて左項・右項の格納先が入れ替わっていました。 不等号比較の方が、その誤った順序に合わせて結果を出していたために一部評価結果が正しくなってました。

まず演算順序のバグを修正して、 次にそれによって合わなくなった比較演算の部分を修正することで、 この問題を解決できたと思います。 最新版を取得してお試し下さい。

NasubiKT commented 10 months ago

正しい結果となっていてることを確認いたしました。 ありがとうございます。

hra1129 commented 10 months ago

確認ありがとうございます。closeにします。