简单的CFG解析器与epsilon转换

时间:2013-04-01 03:07:58

标签: parsing context-free-grammar cyk earley-parser

我偶然发现了许多不同的算法(CYK和Earley),以检查字符串是否是提供CFG的CFL的一部分。我正在寻找易于理解和实施的东西。我需要知道的是字符串是否在CFG中。 CFG通常以

的形式给出
S->S1 S2
S1->S1 a | a
S2->S2 b | b

该解决方案也应该接受epsilon转换,例如S1-> a | ë

任何想法?

1 个答案:

答案 0 :(得分:2)

我在这个项目中找到了一个非常直接的方法

https://code.google.com/p/cykparser/downloads/list

与其他经过不​​必要的语法验证的CYK解析器不同。这个解析器是一个非常好的概念证明,它只是用基本语法实现了CYK算法。

代码在python中。