- 2
- 0
- 约6.13千字
- 约 44页
- 2026-04-17 发布于北京
- 举报
编译原理第八章语法制导翻译与中间代码生成;例8.1考虑下面简单的无符号数文法:;属性计算依赖于分析树或语法树明确或不明确的遍历:;例8.2考虑下列类似C语言中变量声明的简单文法:
decl→typevar-list
type→int|float
var-list→id,var-list|id;字符串floatx,y的语法树,显示属性文法指定的dtype属性:;辅助函数mkOpNode和mkNumNode:
mkOpNode构成一个新的树结点;
mkNumNode构成一个叶子结点。;8.1.2综合和继承属性;并不是所有的属性都是综合的。所有的非综合属性称为继承(inherited)属性。; 文法规则 语义规则
based-num→numbasechar based-num.val=num.val
num.base=basechar.base
basechar→o basechar.base=8
basechar→d basechar.base=10
num(1)→num(2)digit num(1).val=
ifdigit.val=errorornum(2).val=error
thenerror
elsenum(2).val*num(1).base+digit.val
原创力文档

文档评论(0)