2

我写了一个 CYK 解析器,我用它来解析像 (1+2)/3-4^5 这样的数学表达式。我还编写了一个代码,使用下面的语法从 CYK 算法提供的表(左三角矩阵)构建解析树。我的问题是,是否可以直接从我的解析树构建表达式树(哪些内部节点是操作,叶子是数字)?我用来解析的语法(CYK需要乔姆斯基范式)如下:

start symbol: A

A -> [N(,B], B -> [A,N)], A -> [A,C]

C -> [N+,A], C -> [N-,A], C -> [N/,A]

C -> [N*,A], C -> [N^,A], N+ -> +

N- -> - , N/ -> / , N* -> *

N^ -> ^ , N( -> ( , N) -> ) 

A -> number
4

0 回答 0