def の実装途中

gosub *END などで読み飛ばす形で、実行部分に def 関数定義が来ないようにした状態で、
かつ、関数の呼び出しは f,(x)などのように、間にカンマを挟んだ書式で、
という変則的な制約付きで、とりあえず定義と呼び出しの動作確認のためのコミット。
呼び出しの確認のみなので、変数をローカル変数として渡す等の処理は、まだ実装していない。

今後の課題としては、
f(x) などとした場合、これは配列読み込みか、関数実行かの判断が、
構文解析レベルだとこれらが同一構文になってしまうため、構文解析だけでは判断できない。
これを判断する方法としては、
fが変数名か否かを判断し、変数名でなければ関数実行として処理するような分岐の仕組みを作る必要がある。

また、実行文内でdef関数定義を読んでしまった場合にも問題とならないように、
def文の前後に読み飛ばし用のジャンプラベルを付加したり等の細工も必要。

それと、最も重要なのがローカル変数への上手い引き渡しの仕組みの実装。

これらを作る必要がある。