- 0
- 0
- 约3.26千字
- 约 17页
- 2018-11-09 发布于湖北
- 举报
北航编译原理章节义跟试题编译原理实验三,四章节稿-xxxx-1-
编译原理实验三,四 语义分析 语义分析的要求请参看The Decaf Language。例子见后。 语义分析需要用到Bison/Yacc语言中的“语义值类型定义”和“语义动作”使用部分。(教材附录有,不再讲述) 语义分析的例子 Type equivalence and compatibility Two base types are equivalent if and only if they are the same exact type. BoolExpr : Expr { $$ = CheckBoolExprUsage(@1, $1); } CheckBoolExprUsage()中检查$1即Expr的type是否是bool类型的。 变量的类型 在pp3中我们要获得变量的类型。 在我们给的StartFiles里面,为了简单起见,我们将expr、SimpleStmt等也定义为type类型。同学们可自行选择。 Scope—符号表 Scope类起到符号表的作用。在scope.h中定义了static Scope* stack[MaxNestLevel]; 每进入一个scope(Global,Function,Class,Local)就会在stack顶端加入一项,退出这个scope时就把该项退栈。Scope内的标识符都加入scope内部的加入hashtab
原创力文档

文档评论(0)