عندي طلب انتم تعلم الكومبايلر و البارسر و خلافه
انا عندى مشروع يطلب مني نفس اللي كتبته لك سابقا لكنى محتاج افهم الفكرة واتمنى تساعدني لنفترض أن لدينا القرامر هذا:
SS->AAaBBb
AA->a|b
BB->aAA
انت تعلم ان الحروف a ,b
هي حروف منتهية تيرمينال والحروف الكابيتال هى دوال وسوف اضع لك البرنامج الذي كتبته لكنه لم يشتغل لانى
لم افهم الفكرة جيدا
int lexan()
{
int lookahead;
lookahead=getchar();
return t;
}
int match(int t)
{
if(lookahead==t)
lookahead=lexan();
else error();
return lookahead;
}
void error()
{
printf(" error syntax");
}
void SS()
{
AA();
if(lookahead=='a')
match('a');
else error();
BB();
if(lookahead=='b')
match('b');
else error();
}
void AA()
{
if(lookahead=='a')
match('a');
else error();
if(lookahead=='b')
match('b');
else error();
}
void BB()
{
if(lookahead=='a')
match('a');
else error();
AA();
}
