PDA

View Full Version : مبتدی: درخواست برنامه پارسر بالا به پایین در پهنا



saeed_bad1
سه شنبه 23 فروردین 1390, 11:53 صبح
سلام خواهشن برنامه پارسر بالا به پایین و در پهنا رو می خوام . متشکر می شم اگه کمکم کنید:افسرده:

quiet_programmer
سه شنبه 23 فروردین 1390, 12:47 عصر
با سلام.

هرچند دقیقا ندونستم که چی میخوای ولی یه حدسی زدم امیدوارم همونی باشه که منظورتون.
تجزیه پیشگویانه غیر بازگشتی LL1 که یکی از روشهای تجزیه بالا به پایینه:
شبه کدش رو میزارم برات ولی قبل این باید کارای دیگه ای هم انجام بدی:

ParserStack.push(“$”);
While Not(ParserStack.pop(X)=CurrentToken=$)
Begin
If ParserStack.pop(X)=CurrentToken!=$ Then
Begin
ParserStack.Delete(X)
GetNextToken(CurrentToken)
If X is terminal and X!=CurrentToken Then
Syntax Error
End
If ParserStack.pop(X) is non terminal Then
If ParserTable[X][CurrentToken]=A->XYZ Then
Begin
ParserStack.Delete(X);
ParserStack.push(Z)
ParserStack.push(Y)
ParserStack.push(X)
End
Else if ParserTable[X][CurrentToken]=A->Epsilon Then
ParserStack.Delete(X);
Else if ParserTable[X][CurrentToken]=0 Then
Syntax Error
End
Parse success…


باز اگه اونچیزی نیست که خواسته بودین توضیح بیشتری بدین.