.net core lexer中令牌的Antlr4顺序

.net core lexer中令牌的Antlr4顺序,.net-core,antlr4,.net Core,Antlr4,词汇语法 DESC: D | D E S C; . . . INCREMENTOPTION: S | H | M | D; 语法分析器: sortExpression: integer? sortFieldList Desc = DESC?; . . . incrementOption: integer INCREMENTOPTION; 在输入'd'的情况下,我有一个问题 DESC或INCREMENTOPTION标记中的每一个都是lexer中匹配的上标记,而另一个则不匹配 我能做什么 您必须

词汇语法

DESC: D | D E S C;
.
.
.
INCREMENTOPTION: S | H | M | D;
语法分析器:

sortExpression: integer? sortFieldList Desc = DESC?;
.
.
.
incrementOption: integer INCREMENTOPTION;
在输入'd'的情况下,我有一个问题

DESC或INCREMENTOPTION标记中的每一个都是lexer中匹配的上标记,而另一个则不匹配
我能做什么

您必须执行以下操作:

sortExpression. : integer? sortFieldList desc?;
incrementOption : integer incrementoption;
desc            : DESC | SINGLE_D;
incrementoption : SINGLE_D | SINGLE_S_H_M;

DESC            : D E S C;
SINGLE_D        : D;
SINGLE_S_H_M    : S | H | M;

它实际上是有效的,但有没有办法不面对这个问题?!我在很多情况下都有同样的问题,并用类似的方法解决了这些问题。不,就是这样。