Предположим, вы генерировали предложения (строки токенов) из вашей грамматики ANTLR. Как вы думаете, почему ваш синтаксический анализатор на основе ANTLR будет возражать против них?
Что вам действительно нужно сделать, так это создать не совсем легальные строки. Итак, вам нужен генератор, который может выдавать ошибочные строки.
Учитывая, что ANTLR генерирует набор процедур из вашей грамматики ANTLR, я думаю, было бы трудно создать генератор предложений, используя сгенерированный синтаксический анализатор. Что вам нужно, так это явная модель грамматики. И это уже доступно вам: ANTLR input грамматика.
Дополнительное усложнение, которое я вижу, это генерация легальных токенов из регулярных выражений, которые составляют определения токенов. Опять же, вам нужно обработать вход ANTLR, чтобы сделать это.
Обработка обоих из них кажется технически простой. Лучшим механизмом для использования в качестве основы, вероятно, является интерфейс ANTLR, который, очевидно, анализирует спецификации ANTLR и поэтому должен содержать некоторое представление ввода ANTLR.