【问题标题】:Need to keep comments in pyParsing grammar需要在pyParsing语法中保留注释
【发布时间】:2021-02-19 18:19:20
【问题描述】:

我有一个 python pyparsing 语言语法,该语言允许 /*... */ 和 // 样式 cmets。目前,正则表达式在调用解析器之前过滤掉 cmets。

我要解决的问题是我想让系统使用 cmets 自动生成类似于 Autodoc 的文档。我对解决方案的想法是,我想将它们添加到空白的 pyParsing 定义中,而不是预先过滤掉 cmets。但是,我将如何检索 cmets 以便将它们与(例如)文本中的类或函数定义相关联?

我需要检索 所有 cmets,甚至是那些与类或函数无关的 cmets。有没有办法做到这一点?或者有没有更好的解决方案,我没有看到?

编辑:“添加空白的定义”是指使用“ignore(expr)”函数。

【问题讨论】:

    标签: pyparsing


    【解决方案1】:

    将 cmets 解析为语法的一部分的问题在于,它们绝对会出现在任何地方。如果它们没有被忽略,那么您必须在整个解析器中插入它们。

    您可能会做的是使用两个通道,一个用于语法元素,一个用于 cmets,并使用 locateExpr 或解析操作捕获每个通道的位置,或使用 scanString(它返回每个匹配位置的开始和结束) .然后匹配 cmets 的位置和重要的语法元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      相关资源
      最近更新 更多