检查字符串是否满足BNF的方法

时间:2015-05-28 18:56:45

标签: parsing bnf

我为某种语言创建了一个BNF,并想检查某个输入是否对该BNF有效。例如,如果我有像BNF那样的

  <palindrome> ::= a <palindrome> a | b <palindrome> b |
               c <palindrome> c | d <palindrome> d | 
               e <palindrome> e | ...
                                | z <palindrome> z
  <palindrome> ::= <letter>
  <letter>     ::= a | b | c | ... | y | z

字符串'bcdcb'和'hannah'将返回true。 字符串'joe'将返回false。

有人可以描述一种可以做到这一点的算法。

1 个答案:

答案 0 :(得分:-1)

这个算法不适用于joe,因为它检查的是第一个和最后一个字母相同,它正在搜索回文词。 '乔'不是回文词。所以它没有通过就可以了。