Я использовал lex и yacc (чаще всего bison) в прошлом для разных проектов, обычно переводчиков (например, подмножество EDIF, передаваемого в приложение EDA). Кроме того, мне пришлось поддерживать код на основе грамматик lex/yacc, относящихся к десятилетиям. Поэтому я знаю свой путь вокруг инструментов, хотя я не эксперт.
Я видел положительные отзывы о Antlr на разных форумах в прошлом, и мне любопытно, чего я могу потерять. Поэтому, если вы использовали оба варианта, скажите, пожалуйста, что лучше или более продвинуто в Antlr. Мои текущие ограничения заключаются в том, что я работаю в магазине С++, и любой продукт, который мы отправляем, не будет включать Java, поэтому полученные парсеры должны будут следовать этому правилу.