То, что вы ищете, похоже, является генерацией предложений для данного языка. Кусок кода Java является предложением всего языка Java, в качестве примера. Однако из-за рекурсий и циклов количество допустимых предложений для данной грамматики фактически не ограничено даже для самых базовых грамматик. Следовательно, это сложно сделать, и я не знаю, какой инструмент это делает, за исключением одного, который я написал сам (как часть моего vscode ANTLR4 ), который, однако, все еще находится в разработке.
Однако вы можете ограничить процесс генерации подмножеством полного языка, ограничив рекурсии и итерации. Однако важным аспектом здесь является то, что является хорошим представлением языка?
Еще один момент здесь также: вы не можете использовать предложения, сгенерированные из грамматики, для проверки этой грамматики, поскольку это всегда будет успешно, поскольку предложения были сгенерированы из этой грамматики и, следовательно, должно быть действительным.