Исходный код программы AC может быть проанализирован в соответствии с грамматикой C (описанной в CFG) и в конечном итоге превращен во многие AST. Я рассматриваю, существует ли такой инструмент: он может делать обратное, сначала случайным образом генерируя множество AST, которые включают токены, которые не имеют конкретных строковых значений, только типы токенов в соответствии с CFG, а затем генерируют конкретные токены в соответствии с определениями токенов в регулярном выражении.
Я могу представить, что первый шаг выглядит как итеративная нетерминальная замена, которая происходит случайным образом и может быть ограничена определенным количеством итераций. Второй шаг - просто генерировать случайные строки в соответствии с регулярными выражениями.
Есть ли какой-нибудь инструмент, который может это сделать?