标签: parsing grammar programmatically-created ebnf
我的语法包含相互递归的规则。例如:
S -> A A -> B | C | "d" B -> "e" | A C -> A | C | "f"
我想通过重新遵循其规则从该语法生成随机字符串。当我遇到另一种选择时,我会随机选择。问题是,我想在生成一些A / B / C制作后停止。我想我需要在某些时候抛出一个异常来回溯并收集部分展开的循环,但是我该怎么做呢?我需要哪些信息来跟踪和何时投掷?