首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AntlrWorks 2输出

AntlrWorks 2输出
EN

Stack Overflow用户
提问于 2013-08-07 20:16:51
回答 1查看 192关注 0票数 0

因此,我使用Antlrworks 2,处理一个相当大的语法。问题是,在这个语法中,有许多歧义是我正在努力解决的。

我想知道是否有一种方法来解释在发生故障时调用了哪些规则。

例如,当我运行我的规则时,我会得到以下输出

代码语言:javascript
复制
[@0,0:1='99',<20>,1:0]
[@1,2:1='<EOF>',<-1>,1:2]
line 1:0 mismatched input '99' expecting Digit2
(dummy 99)

我想知道[@0,0:1='99',<20>,1:0]是什么意思。@0<20>与我语法中的规则号有什么关系吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-07 22:19:40

下面是默认令牌格式的细目。

代码语言:javascript
复制
[@{TokenIndex},{StartIndex}:{StopIndex}={Text},<{TokenType}>,{Line}:{Column}]

{TokenType}字段通常对应于特定的lexer规则(常量将在生成的lexer中声明)。但是,-> type(X)命令可以在任何lexer规则中使用,以将该规则生成的令牌重新分配到另一种类型。如果将值20分配给名为Foo的令牌,则清单中的第一个令牌是由名为Foo的lexer规则或包含操作-> type(foo)的lexer规则产生的,或者您有一个用户定义的操作,该操作显式地将类型Foo分配给由其他规则生成的令牌(这将是您编写的代码,而不是ANTLR生成的代码)。

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

https://stackoverflow.com/questions/18112997

复制
相关文章

相似问题

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