В Antlr, если у меня есть правило, например:
someRule : TOKENA TOKENB;
будет принято: "tokena tokenb"
если я бы хотел, чтобы TOKENA был необязательным, я могу сказать,
someRule : TOKENA* TOKENB;
тогда я могу иметь: "tokena tokenb" или "tokenb" или "tokena tokena tokenb"
но это также означает, что это может повторяться более одного раза. Могу ли я сказать, что этот токен может быть там 1 или меньше раз, но не более одного? так что он принял бы:
"tokena tokenb" или "tokenb", НО НЕ "tokena tokena tokenb"?
Большое спасибо