假设我将使用以下语法进行编译器
S -> a | aB
如果我对其执行左分解,它会像(e 是 epsilon)
S -> aC
C -> B | e
然后我想删除 epsilon 最终就像
S -> a | aC
C -> B
请注意,我似乎再次需要执行左分解,并且无限地执行左分解并来回移除 epsilon。难道我做错了什么 ??
是否需要在编译器的语法上同时删除左分解和 epsilon?
假设我将使用以下语法进行编译器
S -> a | aB
如果我对其执行左分解,它会像(e 是 epsilon)
S -> aC
C -> B | e
然后我想删除 epsilon 最终就像
S -> a | aC
C -> B
请注意,我似乎再次需要执行左分解,并且无限地执行左分解并来回移除 epsilon。难道我做错了什么 ??
是否需要在编译器的语法上同时删除左分解和 epsilon?