- 9
- 0
- 约1.73万字
- 约 69页
- 2018-02-05 发布于浙江
- 举报
变量声明(续) for (int i = 0; i temp_var_seq; i++) { out \t\tt i DWORD 0 endl; } out \t\tbuffer BYTE 128 dup(0) endl; out \t\tLF BYTE 13, 10, 0 endl; } 递归代码生成函数入口 void tree::recursive_gen_code(ostream out, Node *t) { if (t-kind == STMT_NODE) { stmt_gen_code(out, t); } else if (t-kind == EXPR_NODE (t-kind_kind == OP_EXPR || t-kind_kind == NOT_EXPR)) { expr_gen_code(out, t); } } 表达式代码生成 void tree::expr_gen_code(ostream out, Node *t) { Node *e1 = t-children[0]; Node *e2 = t-children[1]; switch (t-attr.op) { case PLUS: out \tMOV eax, ; if (e1-kind_kind == ID_EXPR) out _ symtbl.getname(e1-attr.symtbl_seq); else if (e1-kind_kind == CONST_EXPR) out e1-attr.vali; else out t e1-temp_var; out endl; out \tADD eax, ; 表达式代码生成(续) if (e2-kind_kind == ID_EXPR) out _ symtbl.getname(e2-attr.symtbl_seq); else if (e2-kind_kind == CONST_EXPR) out e2-attr.vali; else out t e2-temp_var; out endl; out \tMOV t t-temp_var , eax endl; break; 表达式代码生成(续) case LT: out \tMOV eax, ; if (e1-kind_kind == ID_EXPR) out _ symtbl.getname(e1-attr.symtbl_seq); else if (e1-kind_kind == CONST_EXPR) out e1-attr.vali; else out t e1-temp_var; out endl; out \tCMP eax, ; if (e2-kind_kind == ID_EXPR) out _ symtbl.getname(e2-attr.symtbl_seq); else if (e2-kind_kind == CONST_EXPR) out e2-attr.vali; else out t e2-temp_var; out endl; out \tjl t-label.true_label endl; out \tjmp t-label.false_label endl; break; 语句代码生成 void tree::stmt_gen_code(ostream out, Node *t) { if (t-kind_kind == COMP_STMT) { for (int i = 0; t-children[i]; i++) { recursive_gen_code(out, t-children[i]); for (Node *p = t-children[i]-sibling; p; p = p-sibling) recursive_gen_code(out, p); } } 语句代码生成(续) else if (t-kind_kind == WHILE_STMT) { if (t-label.begin_label != )
您可能关注的文档
最近下载
- 2026年伊春职业学院单招职业技能考试题库附答案详解(综合卷).docx VIP
- 2026年危险化学品生产单位安全生产管理人员考试题库附答案.docx VIP
- 2025年内蒙古高等数学(统招专升本)考试试题及答案.docx VIP
- 2025年内蒙古(统招专升本)大学语文考试试题及答案.docx VIP
- 2026年伊春职业学院单招职业技能考试题库附答案详解(夺分金卷).docx VIP
- 2025年内蒙古(统招专升本)计算机基础考试试题及答案.docx VIP
- 步道透水砖铺装施工方案.docx VIP
- “启智慧心”主题寒假作业.doc VIP
- 《WSET 三级葡萄酒认证考试题库解析(2025 版)》.docx VIP
- 2026年危险化学品安全法及安全生产基础知识摸底考试测试卷及答案.docx VIP
原创力文档

文档评论(0)