Как задать количество в веденных цифр в ANTLR4

79
27 февраля 2022, 07:10

Для ограничения ввода четырех цифр в лексическом анализаторе Lex используется следующая конструкция: [0-9]{4}. Как ограничить ввод, так что бы ввести можно было только четыре в ANTLR4?

Answer 1

Ввести каждую цифру отдельно

long_num
 : NUM NUM NUM NUM
 ;
NUM
 : '0'..'9'
 ;

или можно использовать предикаты

long_num
 : {input.LT(1).getText().length() == 20}? NUM
 ;
NUM
 : '0'..'9'
 ;
READ ALSO
if-else через switch-case в Java

if-else через switch-case в Java

Всегда ли конструкцию if-else можно реализовать через аналогичную switch-case в языке Java? Вопрос был на экзамене в вузе, я предположил, к примеру, что...

149
Ручной ввод в JDatePicker

Ручной ввод в JDatePicker

При ручном вводе даты возникает ошибка

122
PublishSubject в Presenter

PublishSubject в Presenter

PublishSubject получаю посредством метода в DbRepositoryСам DbRepository Singleton

101
Метод, принимающий значения типа List<>

Метод, принимающий значения типа List<>

Есть класс Book, который содержит поля типа String такие как Название книги, автор, издательство, тип переплета, год издательства, кол-во страниц...

82