【问题标题】:Lua equivalent to shlex?Lua相当于shlex?
【发布时间】:2010-12-23 13:01:42
【问题描述】:

python 的 shlex 库是否有 Lua 等效项?

【问题讨论】:

    标签: python parsing lua command-line-arguments


    【解决方案1】:

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

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

    【讨论】:

    • 我最初问这个是因为我认为 shlex 是一个命令行解析工具:)
    【解决方案2】:

    另请参阅来自Metaluaggmlpclopts 模块。

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

    【讨论】:

      【解决方案3】:

      另见LPeg

      【讨论】:

        【解决方案4】:

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

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

        也许这会满足您的需求。

        【讨论】:

          猜你喜欢
          • 2014-03-06
          • 2016-06-23
          • 2021-12-31
          • 1970-01-01
          • 2021-07-29
          • 2020-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多