如何在不修改语法的情况下应用CYK或任何其他解析算法?

时间:2016-11-23 11:15:31

标签: linked-list dynamic-programming cyk

所以我在一维数组中有一个语法,由表格

给出
struct array
{
    char left;
    char right[3];
    char number;
}

示例:

array.left = 'A';
array.right = "BC";
array.number = insert_some_conventional_null_character_here

这被翻译为:

A->BC

------

其他例子:

A->3
C->BDE
X->9

此外,array.number还以[0,9]为界。

array.right和array.left是区间[A,Z]中的文字。

我需要返回一个链接列表,其中包含应用于从输入字符串(称为 startString )获取的所有规则(语法组件)到另一个名为 stopString 的输入字符串。< / p>

正如你所看到的,这个语法没有在Chomsky Normal Form中给出,我相信我不能把它翻译成CNF,因为语法会改变,我不能返回程序要求的链表。

我该怎么办?就像Post-Scriptum一样,语法中最多有1000条这样的规则,所以我猜一个递归的解析器可能不是那种方法。之前我曾经问过,我被告知阅读有关CYK算法的内容,我做过。这是我作为一个项目给出的一个问题。请记住,我刚开始这个级别的编程。但是,我确实掌握了所有基本知识。

0 个答案:

没有答案