第一范文网 - 专业文章范例文档资料分享平台

天津理工大学编译原理实验3:语义分析及中间代码生成

来源:用户分享 时间:2025/8/26 17:35:24 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

case '#': return 6; case '(': return 7; case 'i': return 8; case 'E': return 9; case 'T': return 10; case 'F': return 11; case 'P': return 12; default: cout<<\ return -1; } }

int getraw(char raw) {

switch(raw) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'a':

return 10; case 'b': return 11; case 'c': return 12; case 'd': return 13; case 'e': return 14; case 'f': return 15; case 'g': return 16; case 'h': return 17; case 'i': return 18; default: cout<<\ return -1; } }

char getraw_content(string str) {

if(str==\ return '1'; else if(str==\ return '2'; else if(str==\ return '3'; else if(str==\ return '4'; else if(str==\ return 'c'; else if(str==\ return 'd'; else if(str==\ return 'e'; else if(str==\ return 'f'; else if(str==\ return 'g'; else if(str==\ return 'h';

else if(str==\ return 'i'; }

string get_tx(int num) {

switch(num) { case 1: return \ case 2: return \ case 3: return \ case 4: return \ case 5: return \ case 6: return \ case 7: return \ case 8: return \ case 9: return \ case 10: return \ case 11: return \ case 12: return \ case 13: return \ case 14: return \ case 15: return \ case 16: return \ //......本程序暂时用到这么多,等有时间编写合适的可以将数字转换为字符串的函数时,即可更改本函数 } }

void show(char str[size],int index) {

int length=getLength(str); if(index!=-1) cout<<\

for(int i=index+1;i

void showc(char_stack str[size],int index) {

int length=getLengthc(str); if(index!=-1) cout<<\

for(int i=index+1;i

void switch_method(char_stack *stack,int *pointer,char *state_stack,int *pointer_state,string production,char *str,int *index) {

step++;

cout<<\显示步骤 show(state_stack,-1);//显示状态栈 cout<<\

showc(stack,-1);//显示符号站

cout<<\显示当前字符 show(str,(*index));//显示输入串 char c=str[(*index)]; if(production==\ { cout<<\ return ; }

else if(production==\ { char sx='5'; (*index)++; pushstack(stack,pointer,state_stack,pointer_state,c,sx,0); }

else if(production==\ { char sx='6'; (*index)++; pushstack(stack,pointer,state_stack,pointer_state,c,sx,0);

天津理工大学编译原理实验3:语义分析及中间代码生成.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6tiex6p52i5zpak1cslt1is530855j00ibw_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top