Почему прослушиватель ошибок не вызывается из-за недопустимого токена в моей грамматике antlr4?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Почему прослушиватель ошибок не вызывается из-за недопустимого токена в моей грамматике antlr4?

Сообщение Гость »


Начало моей грамматики верхнего уровня:

Код: Выделить всё

INT2: INT INT;
INT4 :  INT INT INT INT;
DATE: (INT | INT2) SEP (INT | INT2) SEP (INT2 | INT4);
fromdate: DATE;
todate: DATE;
interval: DATES (fromdate DASH todate);

luah: (interval SEMICOLON remainingpart;
When I feed it the string:

Код: Выделить всё

Dates:4/1/2024-4/1/2025 fghyhj
it does not generate the error on fghyhj, but token generation stops at a correct place:

Код: Выделить всё

Token: 'DATES', Text: 'Dates:', Line: '1', Column: '0'
Token: 'DATE', Text: '4/1/2024', Line: '1', Column: '6'
Token: 'DASH', Text: '-', Line: '1', Column: '14'
Token: 'DATE', Text: '4/1/2025', Line: '1', Column: '15'
Token: 'SPACES', Text: ' ', Line: '1', Column: '23'
If I feed just an invalid string, like “asdfsdfsedf”, the error handler catches the error:
mismatched input 'asdfsdfsedf' expecting {DATES etc.
I don't understand why fghyhj does not generates the error. Thanks!


Источник: https://stackoverflow.com/questions/781 ... r4-grammar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»