BNF语法匹配

时间:2009-02-24 01:44:08

标签: grammar bnf

我的老师给了我两个bnf语法:

A ::= 'd' | A 'e' A | A 'f' A
B ::= 'd' | B B 'e' | B B 'f'

和四个匹配的字符串:

  • dffd
  • dddefddfe
  • dedf
  • deded

我已经找到了其中两个,但另外两个让我难过。我不希望任何人告诉我答案,但如果有人能给我一些关于我哪里出错的提示,我将不胜感激。

3 个答案:

答案 0 :(得分:2)

这是一个无上下文语法,所以你应该寻找一个解析树。然后,您可以看到哪个非终端符号指向哪个产生字符串。这些语法相当简单,因此绘制一个解析树应该很容易手工完成。

答案 1 :(得分:1)

嗯...

通过归纳,所有匹配必须具有奇数个字符。因此,4个字符串都不能成为命中...


等等哦。我刚注意到第一条规则中的'Y'。我们知道那是什么吗?它可以打开我的论点......

答案 2 :(得分:0)

我的建议是在编写任何代码之前为自己绘制有限的自动机或状态图。先用铅笔和纸手工制作。