Wad*_*ndy 15 c++ python scripting lua embedded-language
对于我目前正在进行的项目,我希望将脚本引擎嵌入到我的C++代码中,以便在线下实现一些可扩展性.该应用程序将需要相当数量的文本处理和在这些脚本中使用正则表达式.
我知道Lua在嵌入式脚本方面通常是业界的宠儿,但我也知道它不支持正则表达式(至少开箱即用).这让我倾向于使用python来嵌入我的语言,因为它似乎拥有Lua背后的最佳支持,并且仍然提供强大的正则表达式功能.
这是正确的选择吗?我应该看另一种语言吗?我有理由再给Lua看一眼吗?
Jav*_*ier 18
如果您需要具体的通常称为"正则表达式"(根本不是常规表达式),那么您有两个选择:
另一方面,如果你需要任何良好的模式匹配,你可以留在Lua和以下任何一个:
你可以说,我是最后一个粉丝.它不仅可以让您定义非常复杂但确定性的模式,它还是一个完整的语法工具,可用于创建整个解析器.如果您愿意,可以在单个多行字符串常量中描述语法,使用您自己定义的钩子来捕获数据并构建结构.
我用它来快速破解JSON解析器,C调用树,xPath库等.
小智 7
boost.python极大地帮助了Python和C++的集成.如果熟悉C++源代码的人主要是编写脚本的人,那么您可能会发现这更方便.
即使脚本编写者不熟悉您的特定源代码,如果他们更熟悉类C语法(C,C++等),他们应该发现Python更容易使用 - 也许只是轻微,Lua并不难.好的程序员无论如何都可以使用多种语言,但是你没有提供有关你的受众的任何信息.
沙箱比沙箱容易得多,所以如果你必须限制哪些脚本可以做(例如产生额外的进程,读取文件),那可能会排除Python.
自己将Lua纳入我的一个C项目之后,我会建议Lua,因为这更容易.
但这取决于您的脚本语言需要具备的功能.Lua升级为游戏的事实脚本语言.如果您需要高级脚本功能,可以使用Python,但如果只是为了方便脚本支持,请使用Lua.从我所看到的,Lua更容易学习新手,不习惯脚本.
我认为,Lua更轻,如果你需要外部包,你可以添加它们,但关键是,Lua的原子部分比Python的要小得多.