yucu()
{
statement();
while(syn==26)
{
scaner();
statement();
}
if(syn!=6)
{
printf("error input\n");
kk=1;
}
return;
}
statement()
{
if(syn==10)
{
scaner();
if(syn==18)
{
scaner();
youerw.com
printf("error in letter\n");
kk=1;
}
return;
}
expression()
{
term();
while(syn==13||syn==14)
{
scaner();
term();
}
return;
}
term()
{
factor();
while(syn==15||syn==16)
{
scaner();
factor();
}
return;
}
factor()
{
if(syn==10||syn==11)
scaner();
else if(syn==27)
{
scaner();
expression();
if(syn==28)
scaner();
else
{
printf("lost ')'\n");
kk=1;
}
}
else
{
printf("the expression is wrong\n");
kk=1;
}
return;
}
4、 测试数据与实验结果(可以抓图粘贴)5、 结果分析与实验体会
本次编译原理是第二次上机实验,实验的内容是语法分析,实现对单词序列语法检查和结构分析。
实验的语法分析利用C语言编制递归下降分析程序,对简单语言进行语法分析。语法分析的任务是在词法分析的基础上,根据语言的语法规则从单词符号串中识别出各种语法单位(如表达式、说明、语句等)并进行语法检查,即检查各种语法结构上的正确性。
通过本次实验,使我更加深入地了解了编译原理的语法分析的意义,为我们帮助理解课本上的知识起了非常重要的作用。