Как сделать пользовательские сообщения об исключениях JavaCC?

Я хочу начать с того, что знаю, что здесь существует похожий вопрос: как создавать конкретные сообщения об ошибках на основе исключений синтаксического анализа в JavaCC

Но у меня нет необходимых 50 представителей, чтобы прокомментировать это, чтобы задать мой вопрос.

По сути, я пытаюсь сделать так, чтобы, если токен не в верхнем регистре, он говорил "Ввод должен быть в верхнем регистре". В моем коде есть кое-что еще, но по сути это то, что я хочу сделать.

Я попытался сделать так, как подсказывает ответ, и в конце или иметь или, который просто содержит код для выдачи пользовательского исключения сообщения, но, кажется, не каждый достигает его, и выводит обычное сообщение об исключении.

<UPPER: (["A"-"Z"])+> это мой знак.

void start(): {} { <UPPER> | {throw new ParseException("custom message");} }

Я чувствую, что это может быть связано с тем, что мой токен состоит из любого количества символов в верхнем регистре, но я не уверен.

Заранее благодарю за любую помощь.

1 ответ

Решение

С тех пор я посмотрел на свой ответ, через несколько дней, и понял, что проблема заключалась в том, что некоторые несоответствия заключались в скобках, которые выходили в финал | не содержаться в правильном месте.

Нужно в будущем убедиться, что все скобки совпадают в нужном месте...

Другие вопросы по тегам