gpt4 book ai didi

java - 如何让antlr3解析 "forward?"

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:38:49 25 4
gpt4 key购买 nike

我正在尝试使用 Antlr3 解析以下语法:

String...
java.lang.String
java.lang.Object...

这是我的 .g 文件(部分):

doc: name DOTS? EOF;
name: ATOM ('.' ATOM)*;
ATOM: ('a' .. 'z' | 'A' .. 'Z')+;
DOTS: '...';

这是行不通的。 Antlr3 将 ATOM 之后的 '.' 视为 name 的一部分,而不是 DOTS 的开头。我该如何解决?

最佳答案

当我使用你的语法时:

grammar T;

parse : doc+ EOF;
doc : name DOTS?;
name : ATOM ('.' ATOM)*;
ATOM : ('a' .. 'z' | 'A' .. 'Z')+;
DOTS : '...';
WS : (' ' | '\n') {skip();};

解析源码:

String...
java.lang.String
java.lang.Object...

我得到以下解析树: enter image description here

所以,我不确定问题到底是什么:它似乎按照您的意愿行事。

关于java - 如何让antlr3解析 "forward?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com