将附加扩展与现有的词法分析器相关联

Posted

技术标签:

【中文标题】将附加扩展与现有的词法分析器相关联【英文标题】:Associate additional extension with existing lexer 【发布时间】:2017-10-04 08:20:56 【问题描述】:

有没有一种简单的方法可以为 pygments 中的现有词法分析器添加文件名和/或扩展名?我不想编写或继承现有的,因为语言相同,但文件具有不同的扩展名/名称。

我尝试破解它并将其添加到 filenames 类变量(在 /usr/lib/python2.7/dist-packages/pygments/lexers/agile.py 中的某个位置),但由于某种原因它不起作用。

我想知道类似.pygments 文件的东西,用户可以在其中将其他名称与词法分析器相关联,但现在看来不可能。

那么实现我的目标的最佳方法是什么?

【问题讨论】:

【参考方案1】:

好的,我找到了解决方案:将文件名/扩展名添加到所需的 Lexer 后,您必须重新生成映射:

cd /usr/lib/python2.7/dist-packages/pygments/lexers/; sudo python _mapping.py; cd -

这不是 100% 干净的解决方案,因为在包更新的情况下您的更改将消失,但它非常快速和简单。

【讨论】:

以上是关于将附加扩展与现有的词法分析器相关联的主要内容,如果未能解决你的问题,请参考以下文章

lex实现扩展的pl0语言的词法分析器(附源码)

软件构造—— 实验二 lex词法分析

用于 AspectJ 的 Pygments 词法分析器

词法分析

词法分析

编译原理词法分析