我有一个申请;为了与之交互,我必须开发一个交互式外壳。shell 将接收用户的输入并将其发送到服务器,服务器将处理并返回响应。
过去我做过这样的事情,但它们通常具有以下格式:
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 接口有哪些实现方式?我将非常感谢一些代码示例。
PS:语言选择有限 C++/Python