私は現在、ゲーム内の古いスクリプト言語のインタプリタを実装している実験を行っています。それは第4言語に基づいていますので、指示(一度確認とsantized)を大きなリストに入れておくのはかなり簡単でしょう。リストエントリに基づいて関数を呼び出す方法は?
コードをリストに入れたら、プログラム全体を繰り返し実行して、forループで命令を1つずつ処理しています。文字列のような特定の項目は、現在のスタックを保持する変数に置くことができます。これは簡単です。しかし、私が立ち往生しているところでは、司令部が起こっている。
私は有効な関数の大きなリストを持っています。私はそれに一致する命令があれば、それが関連する関数を呼び出すところまで行きたいと思います。
私が持っていたのであれば、例えば、:
"Hello, world!" notify
を...コードは、リスト内の通知をチェックして、通知機能を実行します。結論は次のとおりです。文字列を関数名に変換するにはどうすればよいですか?
「Hello、world!」としたいですか? 'notify(" Hello、world! ")'のように動作するように 'notify'を実行しますか? –
実際、通知を行うにはスタック変数を取り、必要な項目をポップするnotify関数を呼び出すことになります。 – Kelketek
私はPythonでの正規表現の使い方に慣れていませんが、文字列を引用符で(すべて)一致させ、エスケープされた引用符を確認する必要があるようです。次に、キャプチャグループを使用して、呼び出す関数を決定します。構文解析は常に煩雑になる可能性があります。 –