Pinkman

导航

2013年9月28日 #

从头学习compiler系列6——句法分析

摘要: 句法分析,也就是语义分析。一段代码不但要符合语法的规则,也要符合语义。比如c语言中,a = 1; 这个语句没有语法问题,如果变量a在之前没有定义,那么就属于语义错误。又如 a = b; a是int型,b是结构体,那么也属于语义错误,类型不匹配。下面列举一些Cool语言需要检测的语义错误。1,重名。类之间是否有重名;类继承树里面的函数是否有重名;类继承树里面的成员变量是否有重名。2,继承。类继承树中每个类是否有定义;如果没有继承,那么默认继承Object类;继承树中是否有环。3,未声明。使用一个变量前是否有定义。4,类型不匹配。如比较、算术计算、if条件、loop条件、函数返回值等需要类型匹配。 阅读全文

posted @ 2013-09-28 20:39 Pinkman 阅读(955) 评论(0) 推荐(0) 编辑