プログラミング講座(50) 字句解析、構文解析
四則演算式の字句解析、構文解析のプログラミングをしました。プログラムID BQJ710-0 で「発行」しました。
字句解析のサブルーチンは Lex_ で、構文解析のサブルーチンは Parse_ で始まるように命名しました。囲碁プログラムの棋譜を解析するサブルーチンを参考にしました。サブルーチンによっては非常に簡単で、EBNFでの
数字 = 整数 | 実数
という定義は次のように書き表せます。実数を先に確かめるのは実数の中に整数が含まれているからです。
Sub Parse_GetNumber Parse_GetReal() If bMatched = "False" Then Parse_GetInteger() EndIf EndSub
キー入力の部分は「どうぶつしょうぎ」のマウス入力のサブルーチンを参考に作りました。汎用的(応用が利くよう)に作ったサブルーチンは他のプログラムにも流用が利き、開発の効率が高まります。
Small Basicの変数は有効桁数が長く、1/3 なら 0.3333333333333333333333333333 と小数点以下28桁になります。これを12桁に表示するため、スクロールするようにしたのですが、ちょっと使いづらいですね。
この問題を解決するには結構手間がかかりそうです。
字句解析、構文解析の部分は完成したので、電卓プログラムはこれで終わりとします。将来的にはCASIO FX-700Pそのものをプログラムできたら面白いかな、と考えているのですが、これは他の言語を使ったほうがよさそうです。
次回は色を題材にしてみようと思います。
(つづく)
| 固定リンク
「Small Basic」カテゴリの記事
- プログラミング講座 (202) 1次元セルオートマトン(2020.09.20)
- プログラミング講座 (201) パラメーター(2020.09.14)
- プログラミング講座 (200) 3次ベジエ曲線(2020.09.14)
- プログラミング講座 (199) スーパー三角関数?(2020.09.02)
- プログラミング講座 (198) スーパー楕円(2020.09.01)
コメント