ゲームに簡単なプログラムを組み込むためにスクリプト言語とそれを実行するインタープリタをC++で作ってしまおうというコーナーです。
前回、パーサを作ろうと張り切っていたのですが…。
いや、どうもご無沙汰しています。
実に4ヶ月近くも更新がなかったわけですが、忘れてたわけじゃないんですよ。
パーサを作り出したあたりから、作る方針を間違えたかなー、と思い始めていたのですよ。
んで、どうしたら現実的に自作スクリプト言語が出来上がるのか、そういうところから考え直そうという言うのが今回のこのページの内容です。
つまり何が作りたいのか
「作ったもので何をしたいか」ではなく、「何を作ろうとしているのか」です。
「作ったもので何をしたいか」は、今まで何度か書いてきたので明確です。
単純な命令の羅列ではなく、複雑な式を含んだプログラムを簡単にゲーム内に取り込みたいのです。
じゃあ、それは、何を作ればできるのか。
だから、今まで言い続けていたように、字句解析を作って、構文解析を作って、構文解析木からプログラムを実行するプログラムを作って……じゃあ、それって結局なんなのか。本当は字句解析とか構文解析なんて言葉に踊らされて本質を見失っているんじゃないか、と思うのです。
で、考えてみると、入力としてテキストで書かれたソースコードがあって、それに難しい名前のついたいろんな処理をして、結果としてゲームを動かすわけです。
つまり、今作ろうとしているのは、一言で言えば、テキスト処理なのです。
これから何をするのか
とりあえず字句解析は問題なさそうです。
何が特に問題だったかというと、配列と関数をどのように扱うかが決められず、それにあわせて作るべきパーサも作れなかったということです。
あと、「値」の扱いとかもよく考えてなかったためよくわからないことになってました。
このあたりを次回からやっていこうと思います。