纠正不受限制的语法:

时间:2014-11-27 16:02:04

标签: parsing grammar jflap

我似乎无法弄清楚

的无限制语法

L = (w am bn | w={a,b}* m=number of a's in w n=number of b's in w).

我为它构建了以下语法,但它一直拒绝我在JFLAP中输入的每个字符串。但是为它手动创建一个解析树没有任何问题。任何人都可以为我看看,看看有什么不对吗?

S -> AST | BSU | epsilon
UT -> TU
T -> A
U -> B
A -> a
B -> b

1 个答案:

答案 0 :(得分:0)

我已经在你的语法上下载并使用了JFLAP。我认为问题在于你没有使用JFLAP用于语法输入的符号。它不使用|符号,但您必须提供多个规则。因此,在JFLAP表示法(以及仍然有效的语法)中,您将拥有:

S -> AST 
S -> BSU 
S -> ε
UT -> TU
T -> A
U -> B
A -> a
B -> b

您还需要在FLAP首选项中将空字符串设置为ε。如果您可以手动创建解析树,也可以在JFLAP中执行此操作以显示派生。