编译原理实验三四.pptVIP

  • 2
  • 0
  • 约 17页
  • 2017-07-08 发布于贵州
  • 举报
编译原理实验三四

编译原理实验三,四 语义分析 语义分析的要求请参看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)

1亿VIP精品文档

相关文档