2012-09-06 35 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

相關問題