2012-09-06 33 views
1

我正在开发一个C++项目,它需要一个命令行界面来在代码库的另一个区域启动命令。在单个会话中,可以通过此CLI发送任意数量的命令,所有格式为command-keyword [ param1 [ param2 [ ... [ paramN ] ] ] ]什么是C++项目的良好交互式语言解析器?

我要寻找一个库:

  • 解析关键字和参数从给定的命令。
  • 维护函数指针关键字的地图,关键字,最小和的参数,错误消息的最大数量等映射函数时的命令被正确格式化
  • 呼叫,并正常失败或者命令的格式不正确或时关键字不存在。
  • 是非常轻量级的依赖关系(我不希望导入整个boost,如果我可以帮助它)。

我相信这是一个非常解决的问题(也许我只是失败,我的谷歌和SO搜索),但我似乎无法找到一个符合我的需求的图书馆。

有没有人有幸为此目的使用某个库?

tl; dr - 我正在寻找一个类似shell的界面,我可以将它集成到我自己的C++项目中来管理交互式命令解析。那里有好的轻量级资源吗?

+0

它是如何交互的,如果它是从命令行 - 为什么不提升:: program_option –

+0

你有没有试过Matlab库?我确定一定有一些 –

+0

@AdrianCornish它不是来自命令行上的单个命令。我正在寻找我的程序中的交互式shell。就像你运行'mysql'或'php -a'时一样。一个提示开始,你输入尽可能多的输入,程序会在你输入命令时执行一些操作。 – chpatton013

回答

0

这就是你想要的:它像交换机或路由器的控制台一样交互地读取命令,它使用树结构来定义命令&选项。一个问题:它使用套接字而不是stdin &标准输出。你可以修改它。 https://github.com/dparrish/libcli

相关问题