【チラシのうら 3日目】計算してみる
計算できるようにします。
数式計算機のコードを参考に、変数と型変換を組み込みました。
トークンを逆ポーランド記法用のスタックに積む際に変数値を同時にスタックに積んでいるので参照代入式(CやJavaにあるa++とか--bとか)が出てくると詰みます。
BASICに参照代入式はないので問題ない筈です。
------------------------
M5Z-80 BASIC Ver.0.1
------------------------
READY.
---- utf8 でエンコードされたメッセージを送信しました: "A=1/2*3/(4+5)" ----
A=1/2*3/(4+5)
READY.
---- utf8 でエンコードされたメッセージを送信しました: "PRINT A" ----
PRINT A
0.166667
READY.
---- utf8 でエンコードされたメッセージを送信しました: "B=123" ----
B=123
READY.
---- utf8 でエンコードされたメッセージを送信しました: "C=A+B" ----
C=A+B
READY.
---- utf8 でエンコードされたメッセージを送信しました: "PRINT C" ----
PRINT C
123.167
READY.
エラーチェックとかガバガバなので
A=1--3 は [A] [=] [1] [-] [-3]で評価できますが
A=1---3 の時はどうなるの?
--- TokenVec dump ---
[2] TK_NUMBER '1' INT = 1
[3] TK_MINUS '-' INT = 0
[4] TK_UNARYMINUS '-' INT = 0
[5] TK_UNARYMINUS '-' INT = 0
[6] TK_NUMBER '3' INT = 3
で A = 1 - (-(-3)) ⇒ A = 1 - 3 になりました。
良いのかコレ?
と思わなくもないのですが、ポケコンで実行しても同じ結果になるので ヨシ‼
ここまでの成果
- 計算が出来るようになった
| 固定リンク
「BASIC」カテゴリの記事
- 【チラシのうら 42日目】約3倍 高速化しました。(2026.08.30)
- 【チラシのうら 41日目】便利だわ GitHubCopilot(2026.08.29)
- 【チラシのうら 40日目】実行中間コード化(2)(2026.08.25)
- 【チラシのうら 39日目】実行中間コード化(2026.08.22)
- 【チラシのうら 37日目】SDカードユニットの交換で問題解決(2026.08.13)
この記事へのコメントは終了しました。


コメント