首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将pygments lexer与antl python目标一起使用

将pygments lexer与antl python目标一起使用
EN

Stack Overflow用户
提问于 2011-09-05 15:31:03
回答 2查看 488关注 0票数 0

Terence Parr本人在谈到antlr3时说:“不幸的是,使用ANTLR构建标记器似乎仍然比使用传统的lex-like方法更难。”其中,as pygments拥有几乎所有你能想到的语言的词法分析器:http://pygments.org/languages/

有没有人尝试过将pygments lexer与antlr python目标一起使用?antlr2有一个将flex与cpp目标一起使用的示例,但不幸的是,antlr3没有这样的示例。

我可以手写一个antlr解析器可以导入的grammarname.tokens文件吗?当我使用antlr lexer时,有一堆匿名标记,我可以直接删除它们吗?或者,也许可以修改pygments以接受antlr .tokens文件作为其令牌。pygments令牌流只需要实现antlr令牌流接口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-26 04:49:43

另一个q/a非常有用:ANTLR Parser with manual lexer还通读stax和jflex代码片段:http://www.antlr.org/wiki/display/ANTLR3/Interfacing+StAX+to+ANTLR http://www.antlr.org/pipermail/antlr-interest/2007-October/023957.html

如果从生成的解析器文件导入令牌类型,则令牌文件不是问题。不幸的是,我第一次尝试解析.tokens文件时忘记了将令牌类型转换为整数,这导致了很长的错误...

但是,我最终弄明白了:我弄明白了:http://github.com/tinku99/antlr-pygments

票数 0
EN

Stack Overflow用户

发布于 2011-09-05 15:53:49

纳温写道:

有没有人尝试过将pygments lexer与antlr python目标一起使用?

我怀疑。至少,我从来没有见过任何人在这里提到这一点,或者在ANTLR邮件列表上(我现在已经监控了很长一段时间)。

纳温写道:

我可以手写一个antlr解析器可以导入的grammarname.tokens文件吗?

不是的。解析器需要一个Python对象的实例,该实例出现在( Lexer )运行时中。.tokens文件不应手动编辑。

纳温写道:

当我使用antlr lexer时,有一堆匿名标记,我可以直接删除它们吗?

我不太确定你的意思,但是删除任何生成的代码对我来说似乎是一个坏主意。如果你指的是.tokens文件,就像我之前提到的:它不应该被手工编辑。

我真的不会费心去“粘合”一些外部词法分析器语法,或完整的词法分析器到ANTLR中。我很确定这会让你花更多的时间来实现,而不是自己编写ANTLR词法分析器语法。毕竟:在大多数情况下,定义词法分析器规则是语言中最简单的部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7305043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档