词法分析器中令牌的 Antlr4 顺序

Antlr4 order of token in lexer

词法分析器语法

DESC: D | D E S C;
.
.
.
INCREMENTOPTION: S | H | M | D;

解析器语法:

sortExpression: integer? sortFieldList Desc = DESC?;
.
.
.
incrementOption: integer INCREMENTOPTION;

在输入'd'的情况下我有问题。

每个 DESC 或 INCREMENTOPTION 标记都是词法分析器中匹配的上层标记,另一个不匹配 我能做什么?!

你将不得不做这样的事情:

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;