教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

编译原理词法分析报告(C++)(2)

来源:网络收集 时间:2026-09-14
导读: 我做编译原理写的,希望对你有帮助。 { m_ch=getnextchar(); } m_row++; m_col=0; m_ch=getnextchar(); m_col++; } else if(m_ch=='*')//块注释 { m_ch=getnextchar(); m_col++; while(1) { if(m_ch=='*') { m_ch=ge

我做编译原理写的,希望对你有帮助。

{ m_ch=getnextchar(); } m_row++; m_col=0; m_ch=getnextchar(); m_col++; } else if(m_ch=='*')//块注释 { m_ch=getnextchar(); m_col++; while(1) { if(m_ch=='*') { m_ch=getnextchar(); m_col++; if(m_ch=='/') { m_ch=getnextchar(); break; } } m_ch=getnextchar(); } } else { m_words.str="/"; m_words.GrammarWords='/'; m_words.type=tokentype::DIV; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } } else if(m_ch=='=') { m_ch=getnextchar(); m_col++; if(m_ch=='=') {

我做编译原理写的,希望对你有帮助。

m_words.GrammarWords = 'o'; m_words.type=tokentype::EQ; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else { m_words.str="="; m_words.GrammarWords = '='; m_words.type=tokentype::ASSIGN; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } } else if(m_ch=='!') { m_ch=getnextchar(); m_col++; if(m_ch=='=') { m_words.str="!="; m_words.GrammarWords = 'p'; m_words.type=tokentype::NE; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else { m_words.str="!"; m_words.GrammarWords = '!'; m_words.type=tokentype::NOT; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } }

我做编译原理写的,希望对你有帮助。

{ m_ch=getnextchar(); m_col++; if(m_ch=='=') { m_words.str="<="; m_words.GrammarWords = 'q'; m_words.type=tokentype::LE; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else { m_words.str="<"; m_words.GrammarWords = '<'; m_words.type=tokentype::LT; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } } else if(m_ch=='>') { m_ch=getnextchar(); m_col++; if(m_ch=='=') { m_words.str=">="; m_words.GrammarWords = 'r'; m_words.type=tokentype::GE; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else { m_words.str=">";

我做编译原理写的,希望对你有帮助。

m_words.type=tokentype::GT; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } } else if(m_ch=='&') { m_ch=getnextchar(); m_col++; m_words.str="&&"; m_words.GrammarWords = 'n'; m_words.type=tokentype::ADD; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else if(m_ch=='|') { m_ch=getnextchar(); m_col++; m_words.str="||"; m_words.GrammarWords = 'm'; m_words.type=tokentype::OR; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); m_ch=getnextchar(); m_col++; } else if(m_ch=='(') { m_ch=getnextchar(); m_col++; m_words.str="("; m_words.GrammarWords = '('; m_words.type=tokentype::LPAREN;//左圆括号 m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); }

我做编译原理写的,希望对你有帮助。

{ m_ch = getnextchar(); m_col++; m_words.str = ")"; m_words.GrammarWords = ')'; m_words.type = tokentype::RPAREN;//右圆括号 m_words.row = m_row; m_words.col = m_col - 1; m_wordList.AddTail(m_words); } else if(m_ch=='[') { m_ch=getnextchar(); m_col++; m_words.str="["; m_words.GrammarWords = '['; m_words.type=tokentype::LBRACKET;/*左方括号*/ m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } else if(m_ch==']') { m_ch=getnextchar(); m_col++; m_words.str="]"; m_words.GrammarWords = ']'; m_words.type=tokentype:: RBRACKET;/*右方括号*/ m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } else if(m_ch=='{') { m_ch=getnextchar(); m_col++; m_words.str="{"; m_words.GrammarWords = '{'; m_words.type=tokentype::LBRACE;//左花括号 m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); }

我做编译原理写的,希望对你有帮助。

} } { m_ch=getnextchar(); m_col++; m_words.str="}"; m_words.GrammarWords = '}'; m_words.type=tokentype::RBRACE;//左花括号 m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } else if(m_ch==',') { m_ch=getnextchar(); m_col++; m_words.str=","; m_words.GrammarWords = ','; m_words.type=tokentype::COMMA; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } else if(m_ch==';') { m_ch=getnextchar(); m_col++; m_words.str=";"; m_words.GrammarWords = ';'; m_words.type=tokentype::SEMI; m_words.row=m_row; m_words.col=m_col-1; m_wordList.AddTail(m_words); } else { currenttoken=tokentype::_ERROR; m_error=TRUE; m_ch=getnextchar(); m_col++; }

六、实验结果

我做编译原理写的,希望对你有帮助。

(1)测试代码

void main()

{

int i = 10;

int j = 0;

int max;

scanf(i);

scanf(j);

if(i>j)

{

max=i;

}

else

{

max=j;

}

printf(max);

}

2. 处理结果

我做编译原理写的,希望对你有帮助。

七、实验总结

通过这次实验,我对词法分析的理解更深刻了。

实验过程比较顺利,但仍遇到一些问题,比如为什么整型数据在token表里输出不直观。这些问题我会记在本子上,课后多花时间去弄懂。

…… 此处隐藏:2467字,全部文档内容请下载后查看。喜欢就下载吧 ……
编译原理词法分析报告(C++)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/111006.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)