void proc()//
}
mm++; yufa0.SYM = yufa2[mm].SYM;//下一单词---------->> block(); while (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; proc(); } } else error1();// 缺少; } else error7();//括号不匹配 (右括号少) }
else error8();//左括号缺少
}
else error9();//缺少参数 }
else error10();//procedure错误
void body()//
→ begin//
error1();//语句未到最后一条,缺少\while(yufa0.SYM == \{ mm++; yufa0.SYM = yufa2[mm].SYM; statement(); }
if (yufa0.SYM == \{ line ++; mm++; yufa0.SYM = yufa2[mm].SYM; }
else error11();//缺少end与begin匹配 } else error12();//缺少begin }
//
// |if
// |read (
mm++; yufa0.SYM = yufa2[mm].SYM; if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; exp(); } else error5();//赋值号错误 }
else if (yufa0.SYM == \{ line++; mm++; yufa0.SYM = yufa2[mm].SYM; lexp(); if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; statement(); if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; statement(); } } else error12();//缺少then }
else if (yufa0.SYM == \{ line++; mm++; yufa0.SYM = yufa2[mm].SYM; lexp(); if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; statement(); } else error13();//缺少do不匹配(while 与do 不匹配) }
else if (yufa0.SYM == \(
}
{
mm++; yufa0.SYM = yufa2[mm].SYM; if (yufa0.SYM == \{ mm++; yufa0.SYM = yufa2[mm].SYM; while(yufa0.SYM == \ { mm++;yufa0.SYM = yufa2[mm].SYM; exp(); } if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; } }
else error7();//缺少右括号
// 此处不会报错,[(
else error14();//调用过程缺少标识符
else if (yufa0.SYM == \,
}
}
}
else error9();//read缺少参数 }
else error8();//缺少左括号
else if (yufa0.SYM == \{ line++; mm++; yufa0.SYM = yufa2[mm].SYM; if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; exp(); while (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; exp(); } if (yufa0.SYM == \ { mm++; yufa0.SYM = yufa2[mm].SYM; } else error7();//缺少右括号 } else error8();//缺少左括号 }
else body();//
//
//
void lexp()//
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库编译原理语法分析(2)在线全文阅读。
相关推荐: