« 【チラシのうら 5日目】比較・論理演算を使えるようにしてみる | トップページ | 【チラシのうら 7日目】LET文を実装してみる »

2026年6月21日 (日)

【チラシのうら 6日目】マルチステートメントを使えるようにしてみる

BASICと言えば:で区切って1行にみっちりステートメントをぶっ込むのがお作法ですから実行単位を:で区切れるようにします。
実のところ4日目の段階でマルチステートメントが使えるようになっていたのですが…
FOR I=1 TO 3:PRINT I:NEXT
と言う例文を思いついてしまいまして… (;゚Д゚)

コレを実現するにはステートメント毎に分解してスタックに積むとかしておかないと無理じゃね?
と思い至りました。
序に仮の行番号が必用じゃね?と思い、ポケコンのマニュアルを参照してみると、行番号0は使用不可になっています。
あ~、コレ、行番号0を仮行番号(ダイレクト実行時の行番号)に使っているに違いない…と判断しまして…
取り合えずトークン分割時にステートメント毎に分割してリストに入れるように修正してみました。


------------------------
M5Z-80 BASIC Ver.0.1
------------------------
READY.

---- utf8 でエンコードされたメッセージを送信しました: "A=1:B=2:C=A+B*3/(4+5):PRINT \"C=\";C" ----
A=1:B=2:C=A+B*3/(4+5):PRINT "C=";C
C=1.66667
READY.


見た目は地味と言うか、目に見える違いがないのでアレですが、進んではいます。


ここまでの成果

  • マルチステートメントが使えるようになった

|

« 【チラシのうら 5日目】比較・論理演算を使えるようにしてみる | トップページ | 【チラシのうら 7日目】LET文を実装してみる »

BASIC」カテゴリの記事

コメント

この記事へのコメントは終了しました。