- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译器设计和实现
编译器设计与实现;一、概述;2、编译器各阶段的分组;二、符号表;1、符号的表示;1、符号的表示;2、符号表的表示;;*;4、符号表的相关操作;三、代码生成接口;1、类型度量;2、接口记录;3、dag操作;3、dag操作;*;*;3、dag操作;4、接口标志;5、函数;6、上行调用;四、词法分析;1、输入;2、单词识别;emun{
#define xx(a,b,c,d,e,f,g) a=b,
#define yy(a,b,c,d,e,f,g)
#include “token.h”
LAST
}
token.h文件:
yy(0, 0, 0, 0, 0, 0, 0)
xx(FLOAT, 1, 0, 0, 0, CHAR, float)
xx(DOUBLE, 2, 0, 0, 0, CHAR, double)
xx(CHAR, 3, 0, 0, 0, CHAR, char)
xx(SHORT, 4, 0, 0, 0, CHAR, short)
xx(INT, 5, 0, 0, 0, CHAR, int)
xx(UNSIGNED, 6, 0, 0, 0, CHAR, unsigned)
xx(POINTER, 7, 0, 0, 0, 0, pointer)
xx(VOID, 8, 0, 0, 0, CHAR, void)
xx(STRUCT, 9, 0, 0, 0, CHAR, struct)
… …;3、关键字的识别;4、标识符识别;5、其他;五、语法分析;1、表达式;表达式的分析:
c语言的小部分表达式语法:
expr: term{+term}
term: factor {*factor}
factor: ID| ‘(’ expr ‘)’
T(expr)
T(term{+term})
T(term)T({+term})
term();T({+term})
term();while(t == ‘+’) {T(+term)}
term();while(t == ‘+’) {T(+)T(term)}
term();while(t == ‘+’) {t = gettok();T(term)}
term();while(t == ‘+’) {t = gettok(); term()}
同理得分析函数term是:factor();while(t == ‘*’) {t = gettok(); factor()}
;c语言表达式分析
赋值表达式:
assignment-expression:
conditional-expression
unary-expression assign-operator assignment-expression
Tree expr1(int tok) {
static char stop[] = { IF, ID, 0 };
Tree p = expr2();
if (t == =‘ || (prec[t] = 6 prec[t] = 8)
|| (prec[t] = 11 prec[t] = 13)) {
int op = t;
t = gettok();
if (oper[op] == ASGN)
p = asgntree(ASGN, p, value(expr1(0)));
else
augmented assignment
return p
};条件表达式:
conditonal-expression:
binary-expression[? expression : conditional-expression]
static Tree expr2(void) {
Tree p = expr3(4);
if (t == ?) {
Tree l, r;
Coordinate pts[2];
if (Aflag 1 isfunc(p-type))
warning(%s used in a conditional expression\n,
funcname(p));
p = pointer(p);
t = gettok();
pts[0] = src;
l = pointer(expr(:));
pts[1]
您可能关注的文档
- 结肠造口和其护理.ppt
- 结核病防治规划-药品的管理.ppt
- 结构布置平面图布置-画法一.ppt
- 结膜和角膜病护理.ppt
- 结膜.角膜.巩膜病.ppt
- 结直肠肛管解剖特点.痔疮.肛裂.ppt
- 结构陶瓷材料和其.ppt
- 结核病合并肝损伤诊治1.ppt
- 绕机研发方向需要更加明确.ppt
- 绕口令-部分单词发音规则.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)