« プログラミング講座(49) 構文図・EBNF | トップページ | なぜなぜ理科学習漫画 »

2011/03/10

プログラミング講座(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そのものをプログラムできたら面白いかな、と考えているのですが、これは他の言語を使ったほうがよさそうです。

次回は色を題材にしてみようと思います。

(つづく)

|

« プログラミング講座(49) 構文図・EBNF | トップページ | なぜなぜ理科学習漫画 »

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(50) 字句解析、構文解析:

« プログラミング講座(49) 構文図・EBNF | トップページ | なぜなぜ理科学習漫画 »