【发布时间】:2013-01-23 05:23:05
【问题描述】:
我有一本包含Stata 关键字的字典和Stata 语法的合理知识。我想花几个小时把它变成 Pygments 的 Stata 词法分析器。
但是,我找不到足够的有关词法分析器语法的文档,并且发现自己无法开始编写词法分析器。 有人能指出一个为 Pygments 编写新词法分析器的好教程吗?
我知道 Pygments API 和 lexer development page,但老实说,对于像我这样对 Python 知识非常有限的人来说,这些还不够。
到目前为止,我的策略是寻找示例。我找到了quite a few,例如Puppet、Sass、Scala、Ada。他们只帮了这么多。欢迎任何有关如何从我的 Stata 关键字开始的帮助。
【问题讨论】:
-
不是您寻求的答案,但我总是对 Stata 语法突出显示中对关键字的强调感到惊讶。我发现突出显示的主要好处是错误标记,但是没有绝对全面的单词列表,并且允许命令缩写,在这种情况下很痛苦,可能有太多的错误分类。
-
我同意在这里强调关键字是至关重要的。 Mac OS X 上的 TextMate 编辑器有两个 Stata 语法包,它们有不同的关键字列表。尽管有这些限制,我认为可以在 Pygments 中实现一些不错的东西,但是我缺乏词法分析器的适当知识来开始编写一个。
-
Fr.:我想我不清楚。我认为关键字列表是——对于Stata——语法突出显示最不需要的细节。换句话说,很高兴在几年前发现仅仅假装 Stata 代码是 C 代码在各种文本编辑器中得到了有用的语法突出显示。不需要关键字列表,而且关键字通常无济于事,例如当合法的命令名实际上被用作变量名时。
-
你完成过这个词法分析器吗?我会感兴趣的。
-
抱歉,我没有(在 2013 年几乎完全切换到 R)。