« BASIC (3) ファイル入出力 | トップページ | BASIC (5) 構文解析について »

2020/05/30

BASIC (4) 構文解析の第一歩

コンバータを作るには、BASIC のソースファイルの構文を解析する必要があります。これを行うプログラムがいわゆるパーサーです。

今回は本格的な構文解析に入る前に、簡単な方法を試してみたいと思います。実は、これも F-BASIC 向けに作った XPOSE.BAS というプログラムを PC-BASIC 上で走らせてみようという試みです。

XPOSE.BAS は BASIC プログラム内の MML を移調 (transpose) するプログラムです。PC-BASIC でも PLAY 文が使えるので実際、移調した結果を確かめられるはずです。

PC-BASIC 向けに直した XPOSE.BASE のソースコードと実行結果をこちらに公開します。

前回と同様、エラー番号を直すだけで動作しました。このプログラムでは、PLAY 文と DATA 文にある MML を見つけて移調しています。約30年ぶりにコードを見ましたが、結構ちゃんと作られています。コンバータの作成に役立ちそうです。

それから、和音について以下のことが判りました。

F-BASIC では三和音が可能ですが、PC-BASIC で三和音を鳴らそうとすると Syntax error(コマンドまたは文の書き方に誤りがある)になってしまいます。これは C:\Users\username\AppData\Roaming\pcbasic-1.2\PCBASIC.INI という設定ファイルに syntax=tandy を指定することで回避できます。ただ、ビープ音で PLAY 文を鳴らしているようで、和音にはなっていませんでした。

ちなみに半角カタカナが化ける件も同じ設定ファイルで codepage=932 を指定すると解消するはずですが、実際は記号が表示されなくなるだけで、カタカナは長音以外表示されませんでした。フォントが対応していないようです。

また、MML の休符は、F-BASIC や Small Basic では R ですが、PC-BASIC では P でした。

(つづく)

関連項目

|

« BASIC (3) ファイル入出力 | トップページ | BASIC (5) 構文解析について »

BASIC」カテゴリの記事

コメント

コメントを書く



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




« BASIC (3) ファイル入出力 | トップページ | BASIC (5) 構文解析について »