布尔表达式翻译布尔表达式的属性文法
发布网友
发布时间:2024-08-11 15:33
我来回答
共1个回答
热心网友
时间:2024-08-22 13:18
布尔表达式的属性文法可以通过以下规则进行翻译:
Expr 可以是标识符,此时它初始化为 NXQ 类型,函数计数器设为 NXQ+1。接着生成 jmp 和 Entry($1),以及一个跳过目标地址为0的操作。另外,生成一个空操作并设置函数计数器为0。
如果 Expr 是标识符与运算符和另一个标识符结合,类型和函数计数器也初始化为 NXQ 和 NXQ+1。生成 jrop,并连接两个表达式的入口。同样,空操作和函数计数器被设置为0。
当遇到圆括号包围的 Expr,其类型和函数计数器取圆括号内的表达式的相应值。
当遇到否定运算符 ‘﹃’,函数计数器取 Expr 的函数计数器值,类型保持不变。
两个 Expr 进行按位异或(^),类型取两个操作数的类型,函数计数器为两者的函数计数器合并。
进行逻辑与(∧)操作时,将函数计数器设置为第一个操作数的函数计数器,但类型回溯到 NXQ。
逻辑或(∨)操作类似,函数计数器保持第一个操作数的值,类型回溯到 NXQ。
扩展资料
布尔表达式(Boolean expression)是一段代码声明,它最终只有true(真)和false(假)两个取值。从最基本的层次来说,所有的布尔表达式,不论它的长短如何,其值只能是true或false。