首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANTLR4测试版3非常简单的语法不起作用

ANTLR4测试版3非常简单的语法不起作用
EN

Stack Overflow用户
提问于 2012-11-30 07:37:07
回答 1查看 327关注 0票数 3

下面是一个非常简单的语法:

代码语言:javascript
复制
grammar test;

DIGIT : [0-9] ;
WS : [ \r\n\t]+ -> skip ;
value : DIGIT+ ;

在OSX和JAVA版本1.6下使用antlr v4.0b3

使用以下命令编译语法:

代码语言:javascript
复制
antlr4 test.g4
javac *.java

然后我使用grun测试语法:

代码语言:javascript
复制
grun test value -tokens

结果如下:

代码语言:javascript
复制
grun test value -tokens
12
[eof]
[@0,0:0='1',<1>,1:0]
[@1,1:1='2',<1>,1:1]
[@2,3:2='<EOF>',<-1>,2:0]

我的问题是:为什么我得到两个令牌('1‘和'2')而不是一个('12')?

非常感谢那些能帮助我的人!

干杯!

盖伊

EN

回答 1

Stack Overflow用户

发布于 2012-11-30 09:06:07

您要求DIGIT一次匹配一个数字,然后将其传递给解析器规则: value。我觉得你真正想要的是

代码语言:javascript
复制
value : INT ;
INT : [0-9]+ ;

:)

特伦斯

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

https://stackoverflow.com/questions/13636789

复制
相关文章

相似问题

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