6

python 的shlex库是否有 Lua 等价物?

4

4 回答 4

4

另请参见LPeg

于 2009-12-05T21:03:31.003 回答
3

我找到了一个名为LuaParse的项目的引用:

LuaParse 包括 Blex,一个通用的纯 Lua 词法分析器,和 lparse,一个纯 Lua Lua 解析器,以及各种实用功能和原型包管理系统。

也许这会满足您的需求。

于 2009-12-05T12:46:08.240 回答
3

如果目标是解析类似 shell 的语言(这似乎是 shlex 的实际设计目标),那么按照lhf 的建议在LPeg中编写语法可能是正确的答案。然而,编写一个完全实现 shell 实际遵循的分层引用规则的大杂烩的语法并不是那么容易。只要您不期望正确解析所有有效(或更糟)的脚本,编写有用的语法应该很简单。/bin/shcsh

如果目标实际上是为配置文件或应用程序脚本创建一种明智的“小语言”,那么我建议 Lua 本身已经非常接近于成为那种语言。它最初的设计考虑了数据描述,它的解析器非常擅长处理相当大的数据声明。有关如何以这种方式使用 Lua 的示例,请参阅PiL 的第 10.1 节。后面的第 25 章描述了 Lua 与针对特定配置用例的大型应用程序的集成,并演示了许多方法。

于 2009-12-07T21:26:44.693 回答
1

另请参见Metaluagg的模块mlpclopts

这些是“不完全”的 Lua(因为 Metalua 是一种单独的语言),但可能会提供一些有用的见解。此外,Metalua 代码编译成普通的 Lua 字节码,因此它是可重用的。

于 2009-12-05T22:08:17.233 回答