我正在开发一个程序,可以直接从命令行使用选项和输入文件,或者像shell一样完全交互式使用。对于初始执行,我使用GNU的Getopt来解析命令行选项。
在文件上使用时,我正在使用Flex和Bison。这简化了解析,因为语法非常简单,但我不完全确定如何处理shell方面。我之前使用过GNU的readline和历史库,当我这样做时,我完全依赖于strtok和许多与嵌套switch语句的比较。它有效但看起来有点像黑客工作......
有没有更好的方法来解决这个问题?
对于shell允许的数据输入我正在考虑将它直接传递给临时文件并再次使用Flex和Bison,但是对于各种参数(比如Getopt现在为我解析的命令行选项)是有的更好的方法?
我正在考虑尝试回收我的getopt代码,因为它可以灵活地捕获所有内容,如果它不是一个选项,我可以假设它的数据并将其输出。但我喜欢第二种意见。
谢谢
答案 0 :(得分:0)
只需用Python编写即可。使用cmd
模块编写shell程序并使用shlex
解析输入,就像shell一样。