一行 if はサポートしないつもりだったが
endif のスペルが長すぎて断念。
となると、改行が文法に入ってくるので、文法まるまる書き直し。
泣きそうになったけどまあなんとかした。
(一行ifと複数行ifを分けた)
とは言え
if expr then while expr
statement
wend
↑これが一行 if として処理されることにww
BASIC と yacc は相性が悪い・・・
予想では閉鎖後は今募集している手書きイラストのモザイクアートだけババーンと表示されるようになると思ってます。
今作ってる処理系も、中間コード(double配列)を吐き出して、実行は vm 担当です。
vmとかお好きなら、こちらのとかどうですか?
http://www.boundvariable.org/um-spec.txt
たった13個の命令だけ。
これはとあるプログラミングコンテスト用の vm です。
めちゃくちゃおもしろいです!!
参加者(日本人)の blog がわかりやすいかな。
http://shinh.hatenablog.com/entry/20060725/1153760624
プチコンでも実装できるのですが、メモリがかなり必要なので 3号では実行できません。
BIG ならいけるかもだけど、素直にCあたりで書くのがいいと思います。
私の実装だとCで382行.