Antlr4 порядок токенов в лексере - PullRequest
1 голос
/ 24 марта 2020

грамматика лексера

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

грамматика синтаксического анализатора:

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

в случае ввода 'd' у меня проблема.

каждый из DES C или токен INCREMENTOPTION - это верхний токен в лексере, который соответствует, а другой не соответствует, что я могу сделать?!

1 Ответ

2 голосов
/ 24 марта 2020

Вам нужно будет сделать что-то вроде этого:

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;
...