Я создал грамматику для логических выражений и теперь пытаюсь реализовать посетителя для его оценки.
Сообщается, что нет необходимости чрезмерно усложнять лексический анализатор грамматики и правила синтаксического анализатора с помощью семантического анализа, потому что гораздо лучше предоставлять содержательные сообщения об ошибках от Посетителя.
Поэтому я пытаюсь проверить согласованность типов, правильность даты и т. Д. В Посетителе. И меня удивляет то, что нет никакого способа (по крайней мере, я его не вижу) сообщить об ошибке от Посетителя, кроме как выбросить исключения. И если я выдаю исключение, я не смогу продолжить проверку выражения и сразу обнаружить все ошибки. Вдобавок мне нужно каким-то образом отлавливать все типы исключений синтаксического анализа (как мне их узнать?). В общем, выброс исключения не кажется правильным решением.
Не могли бы вы дать мне направление, как планируется сообщать об ошибках в семантике выражений во время обхода посетителя?