如何在pygments中安装新的词法分析器?

时间:2014-03-11 09:38:21

标签: pygments

我为pygments编写了一个新的词法分析器,我尝试使用它。因此,我看看这个页面

http://pygments.org/docs/lexerdevelopment/

描述安装过程。他们说做make mapfiles,但我不知道在哪里。

我查看这两个目录,其中有他们谈论的other.py模块。

/usr/share/pyshared/pygments/lexers/

/usr/share/pyshared/pygments/lexers/

但那里没有任何makefile。那我该怎么办?

2 个答案:

答案 0 :(得分:5)

博文Custom syntax in pygments解释了向pygments添加自定义词法分析器的另一种方法:

  

Pygments通过setuptools中名为entrypoints的东西启用自定义插件。

目录结构:

__init__.py

lexer.py文件可以为空,但它必须在那里,以便只需触摸即可。 setup.py将包含pygments的正则表达式词法分析器。

from setuptools import setup, find_packages setup ( name='fantomlexer', packages=find_packages(), entry_points = """ [pygments.lexers] fantomlexer = fantomlexer.lexer:FantomLexer """, ) 的内容如下:

sudo python setup.py develop

然后,您可以通过single simple underscore安装词法分析器。

答案 1 :(得分:2)

我找到了一个有效的解决方案。我猜你的lexer在文件mylex.py中。我在ubuntu 13.10下做了以下。您需要具有root权限才能执行此操作。

  1. 将新词法分析器复制到/usr/share/pyshared/pygments/lexers/
  2. 在同一目录中运行python _mapping.py
  3. 将词法分析器的符号链接添加到/usr/lib/python2.7/dist-packages/pygments/lexers/。例如:

    cd /usr/lib/python2.7/dist-packages/pygments/lexers /

    ln -s /usr/share/pyshared/pygments/lexers/algobox.py。