私のプロジェクトの 1 つで、python cmdクラスを中心に構築された python プログラムがあります。これにより、データベースに送信する sql ステートメントに関するミニ言語を作成することができました。Python との接続がはるかに簡単になるだけでなく、SQL ではできないことを実行できます。これは、いくつかのプロジェクトにとって非常に重要でした。ただし、制御フローを大きくするために if ブロックを追加する必要があります。
私の現在の考えでは、IF と END という 2 つの新しいコマンドを言語に追加するだけです。これらは、行をスキップするかどうかを決定する変数を設定します。他の誰かが cmd モジュールでこれを行ったかどうかを知りたいのですが、もしそうなら、私が見逃している標準的な方法はありますか? Google は何も明らかにしていないようで、cmd ドキュメントも何も明らかにしていません。
私がやっていることと同様のアイデアについては、ここにアクセスしてください。質問とコメントを歓迎します。:)
うーん、私が考えていたよりも少し複雑ですが、Python 構文があればいいのですが。ミニ言語の構築については、最終的に実現するまでかなり長い間議論しました。この問題は、主に外部の制限から生じます。SQLに変換するための「データ」がたくさんあります。これは寛大です。これは、通過しない他の「データ」に基づいています。また、問題の特定の「バージョン」ごとに固有です。sql に対して直接データを処理することは、私の最初の傾向でしたが、実際的ではありませんでした。
好奇心旺盛な方のために、私はかなりの時間を費やして、UNIX プログラミングの芸術におけるミニ言語の章を調べました (ここにあります) 。
純粋な python で構築していたら、問題セットに絶対に必要な柔軟性がなかったでしょう。