考虑下面的语法......
bexp -> bterm | bterm ‘||’ bexp
bterm -> bfact | bfact ‘&&’ bterm
bfact -> true | false | id | ‘(‘ bexp ‘)’
假设我们用'!'扩展BEXP通过改变bfact规则进行否定的运算符如下: -
bfact -> true | false | id | '(' bexp ')' | '!' bexp
让我们调用这个扩展语法BEXP2。我怎样才能证明它含糊不清?
答案 0 :(得分:2)
你可以通过找到一个包含两个解析的字符串来证明它是不明确的:)
在这种情况下,请尝试!id&&id
。那是(!id)&&id
还是!(id&&id)