プレイ日記
MIKI ifconfig
2015/9/8 に投稿した式評価がちょっとだけできた! 数値を入れると、中間コードにコンパイルして、それを実行して、結果を表示します。 実質的に input a$:? val(a$) と同じ事を233行のコードで実装していますww
9そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
VAL関数と同値になるということは"1"*100を数値化したら0になるわけですか?
0そうだね
プレイ済み
返信[2]
親投稿
MIKI ifconfig
なりません。 数値または数値型の変数だけを対象としています。
0そうだね
プレイ済み
返信[3]
親投稿
MIKI ifconfig
あ、誤解を招きそうだな。 現在は 9/8 の文法のうち、factor のなかの constant (floating-constant) のみを parse できます。 再帰下降なので、あとはガリガリ書いていけば lor-expression までさっくりと実装できます。 変数や配列の扱いはまた別途実装が必要です。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
ちなみにVAL関数ではA$="1"*100:?VAL(A$)とすると0になります。
0そうだね
プレイ済み
返信[5]
親投稿
MIKI ifconfig
なぜ????
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
最終的な目標はプチコンの処理系を実装することですが、 それも bug to bug での互換性など考えてないし、 最低私自身のコードが動けばいいってレベルです。 しかも、それですら実現可能性は二階から目薬程度と言えるでしょう。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
プチコン3号のVAL関数は100桁以上の数値は0を返すおかしな仕様となっています。 これさえ無ければ実数型をTXTでセーブする最も簡単な方法はFORMAT$("%.324F",A)になるはずでしたがこの仕様のためPSTR$などの指数表記に変換可能な関数を用意する必要があります。 プチコン3号エミュを作るのでない限りはこのVAL関数の変な仕様は実装しなくてもいいでしょう。
1そうだね
プレイ済み
返信[8]
親投稿
MIKI ifconfig
は~~そうなんですか~~ format$ には %e %g を追加して欲しいですね。 それはそうと、汎用の変数保存・読み込み命令の実装に、 おちゃめさんの pstr を使わせていただきました。この場を借りてお礼申し上げます!!
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
使ってもらって私の方こそありがとうございます。 FORMAT$に%e、%gは欲しいですよね。 みき★さんが作っている処理系に搭載されることを期待しておきます。
0そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
今日は単項演算子(unary)と項(term)まで作った。 因子(factor) の '(' 式 ')' も作った。 !((0)) とか -3*-7 などが計算できるようになった copy 命令のバグのせいで、識別子 (変数、関数) の処理は滞った。
0そうだね
プレイ済み
返信[11]
親投稿
MIKI ifconfig
シンボルテーブル作った。 div mod and or xor not など追加。 #black #white #red など追加。 式のほうは + - << >> == != < <= > >= and or xor までできた。
0そうだね
プレイ済み
返信[12]
親投稿
MIKI ifconfig
&& || ができた
0そうだね
プレイ済み