从循环中停止递归语法规则

时间:2017-04-13 10:36:44

标签: parsing grammar programmatically-created ebnf

我的语法包含相互递归的规则。例如:

S -> A
A -> B | C | "d"
B -> "e" | A
C -> A | C | "f"

我想通过重新遵循其规则从该语法生成​​随机字符串。当我遇到另一种选择时,我会随机选择。问题是,我想在生成一些A / B / C制作后停止。我想我需要在某些时候抛出一个异常来回溯并收集部分展开的循环,但是我该怎么做呢?我需要哪些信息来跟踪和何时投掷?

0 个答案:

没有答案