跳转到主要内容

Pygments正则表达式检查器

项目描述

Regexlint旨在作为检查器运行于可导入的Pygments词法分析器上,并标记出可能导致词法分析器性能不佳的问题(因为我们没有词法分析器的分支覆盖率 :))

作为一个简单的例子,替代项是首先匹配,所以它会标记这个永远不会匹配“elseif”

(else|elseif)

它还理解一些Pygments内部机制,例如 bygroups(...)` 需要和正则表达式捕获组具有相同数量的参数。参数过多会导致重复文本;参数过少会导致文本缺失。捕获组之间也不应有空隙,所以这个例子标记了两个问题

(r'(foo)\s+(bar)', bygroups(Blah)),

用法

make demo
    or
regexlint pygments.lexers.web:HtmlLexer
    or
python3 regexlint/cmdline.py pygments.lexers.web

待办事项

  • 找出哪个阶段应该移除不必要的反斜杠

  • 编写替代项展开器,以便 ([ax]|a[bc]) 失败于替代项顺序检查

  • 使其不仅仅适用于Pygments

许可

本项目受Apache公共许可证许可,请参阅COPYING文件

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

regexlint-2.0.tar.gz (33.5 kB 查看哈希值)

上传时间 源代码

构建分发

regexlint-2.0-py3-none-any.whl (30.0 kB 查看哈希值)

上传时间 Python 3