词法分析报告(3)

2019-09-01 09:23

if(ch=='=') { re.kind=JAE; re.value=0; return re; } else { fpoint--;

file.seekg(fpoint,ios::beg); re.kind=JA; re.value=0; return re; } break; case'<': file.get(ch); fpoint++; if(ch=='=') { re.kind=JBE; re.value=0; return re; } else { fpoint--; file.seekg(fpoint,ios::beg); re.kind=JB; re.value=0; return re; } break; case'(': re.kind=SLP; re.value=0; return re; break; case')': re.kind=SRP; re.value=0; return re; break; case'{': re.kind=LP; re.value=0;

//后退 //后退

return re; break; case'}': re.kind=RP; re.value=0; return re; break; case';': re.kind=SEMI; re.value=0; return re; break;

///////////////////////不是该语言所能识别的单词////////////////////////////

default: cout<<\ //报错 }//end switch }

////////////////////////////主程序//////////////////////////////////////// void main() { char ch; word reword; //接收词法分析程序返回的单词 fpoint=0; //记录当前字符的位置,用于回退 num_token=0; //记录一个单词中的字符数量

token=new char[30]; file.open(\

//存放每个单词

cout<<\词法程序分析结果:\ while(1) { file.get(ch); fpoint++; if(file.eof()!=0) break; reword=scan(ch); if(reword.kind!=0){ switch(reword.kind) { case 1: cout<<\ \ case 2: cout<<\ \ case 3: cout<<\ \ case 4: cout<<\ \ case 5: cout<<\ \ case 6: cout<<\ \ case 7: cout<<\ \ case 8: cout<<\ \ case 9: cout<<\ \ case 10: cout<<\ \

case 11: cout<<\ \ case 12: cout<<\ \ case 13: cout<<\ \ case 14: cout<<\ \ case 15: cout<<\ \ case 16: cout<<\ \ case 17: cout<<\ \ case 18: cout<<\ \ case 19: cout<<\ \ case 20: cout<<\ \ case 21: cout<<\ \ case 22: cout<<\ \ case 23: cout<<\ \ case 24: cout<<\ \ case 25: cout<<\ \ case 26: cout<<\ \

default: cout<<\非法标识\}

if(reword.kind!=6) if(reword.kind==13||reword.kind==12||reword.kind==11)

cout<

else cout<<\ //输出无属性 else{ do{ cout<<*token; token++; }while(*token!='\\0'); //输出标示符 cout<<\ } } } file.close(); system(\}


词法分析报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:10万吨11°淡色啤酒发酵罐的设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: