进入结构语句时:记录本段LDEF和LUSE。 结束时:将LUSE表中LDEF中的项删除,删除 本段LDE表,LUSE表保留 进入过函时:记录本层LDEC、LDEF表; 退出时:将LUSE表中LDEF中的项删除,删除 本层LDEC表和LDEF表,LUSE表保留。 进入主程序时:记录本层LDEC、LDE表; 结束时:检查凵USE是否为空,若非空表示有 非法转入或使用了无定位的标号
进入结构语句时:记录本段LDEF和LUSE。 结束时:将LUSE表中LDEF中的项删除,删除 本段LDEF表, LUSE表保留。 进入过函时:记录本层LDEC、LDEF表; 退出时:将LUSE表中LDEF中的项删除,删除 本层LDEC表和LDEF表,LUSE表保留。 进入主程序时:记录本层LDEC 、LDEF表; 结束时:检查LUSE是否为空,若非空表示有 非法转入或使用了无定位的标号
常量声明的语义处理 形式: Cons DecPart→ const Cons DecList ConsDecList Cons Dec Cons DecList] ConsDec id = c id=C的语义处理原理: ◆求G.type,C.val ◆查符号表是否有标识符id;若有则重复 声明错误 否则构造 (id, C. type consK ind, C value) 填写到符号表中
常量声明的语义处理 形式:ConsDecPart → const ConsDecList ConsDecList → ConsDec {;ConsDecList} ConsDec → id = C id = C 的语义处理原理: 求C.type , C.val 查符号表是否有标识符id;若有则重复 声明错误 否则构造 (id,C.type,consKind,C.value) 填写到符号表中