アプリケーションがあります。それと相互作用するには、インタラクティブシェルを開発する必要があります。シェルはユーザーからの入力を受け取り、それをサーバーにディスパッチします。サーバーは応答を処理して返します。
過去に私はそのようなことをしましたが、それらは通常次の形式でした:
Shell>> COMMAND arg1 arg2 arg3 ..
私の実装は、次のような方法で行われました。
/* Mock implementation */
while(true) {
in = readline()
tokens = in.split(' ') //split based on space
switch(token[0]) {
case "Command_a": processA(token[1], token[2])
case "Command_b": processB(token[1], token[2], token[3])
}
}
今回は、ユーザー入力のために、より広範な文法を使用する必要があります。現在のアプローチを使用するとif , if-elseif-else, if-else, switch
、解析と応答の生成の両方に多くのステートメントが含まれるため、事態は非常に困難になります。
インタープリターをモジュール化して保守しやすくする方法で、この問題にどのように取り組むことができますか?人気のあるCLI-Interfaceを実装する方法は何ですか?いくつかのコード例を本当に感謝します。
PS:言語の選択はC ++/Pythonに制限されています