我们举一些例子来理解"短语","直接短语"和"句柄"的概念。 让我们考虑例4.14中的文法G[E]的一个句型i*i+i。为了叙述方便,我们将句型写作i1*i2+i3。因为有: E ![]() ![]() ![]() ![]() E ![]() ![]() ![]() ![]() E ![]() ![]() ![]() ![]() 还有: E ![]() ![]() ![]() ![]() 还有: E ![]() ![]() ![]() ![]() 还有: E ![]() ![]() ![]() ![]() 还有: E ![]() ![]() ![]() ![]() 还有: E ![]() ![]() ![]() ![]() 即i1,i2,i3,i1*i2和i1*i2+i3都是句型i1*i2+i3的短语,而且i1,i2,i3均为直接短语,其中i1是最左直接短语,即句柄。 虽然i2+i3是句型i1*i2+i3的一部分,并不是它的短语,因为尽管有E i2+i3,但不存在从文法开始符号E到i1*E的推导。 再讨论例4.13的文法的句型aabbaa,为区别其中的a和b,把它写作a1a2b1b2a3a4。它的直接短语有a2,b2a3和a4,a2即是句柄;它的短语有a2,b2a3,a4,a2b1b2a3和a1a2b1b2a3a4。 |