好文档 - 专业文书写作范文服务资料分享网站

东北大学编译原理实验报告材料二

天下 分享 时间: 加入收藏 我要投稿 点赞

实用文档

void Error() //出错函数 {

cout<<\语法错误\}

void T(void) //子程序T {

F(); //进入子程序F if(ch=='*') { i++; ch=str[i];

T();} //递归子程序T }

void F(void) //子程序F { if(ch=='(') {

i++; ch=str[i];

E(); //回到子程序E if(ch==')') { i++; ch=str[i]; }

else {Error();a=0;} }

else if((ch>='0'&&ch<='9')||(ch>='a'&&ch<='z')) { i++; ch=str[i]; } else { Error(); a=0; } }

void E(void){ //子程序E T(); if(ch=='+') { i++;

ch=str[i];

标准

实用文档

E(); //递归子程序E } }

int main() //主函数 {

system(\

cout<<\

cout<<\ 输入表达式以#号结束 |\cout<<\cin>>str; ch=str[0];

while(ch!='#') { E(); if(!a) break; }

if((ch=='#') && ( a != 0)) //遇#且a不等于零时语法正确 cout<<\语法正确\return 0; }

程序运行结果:(截屏)

LL(1)分析法:

标准

实用文档

递归下降:

思考问题回答:

语法分析的任务是什么?

语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,语法分析程序判断源程序在结构上是否正确。通过接受词法分析程序识别出来的单词符号串,判断它们是否由某种语言的文法产生,即判断被识别符号串是否为某语法成分,同时进行语法检查,为后面的语义分析和代码生成作准备。

标准

东北大学编译原理实验报告材料二

实用文档voidError()//出错函数{cout<<\语法错误\}voidT(void)//子程序T{F();//进入子程序Fif(ch=='*'){i++
推荐度:
点击下载文档文档为doc格式
271172cnmb8jj329nz0t2wkqq4mjdl00m3q
领取福利

微信扫码领取福利

微信扫码分享