运算符语法中的优先关系是什么?

对于运算符语法中的终端 a 和 b,我们可以有以下优先关系 -

  • 一个=。b(Equal Precedence)− 如果生产的 RHS 的形式为 α a β b γ,其中 β 可以是 ε 或单个非末端,则 a =。湾。

这里,α 和 γ 可以是任意字符串。

示例- 在语法中,S → m A c B ed

关于 mAcBed 与 αaβbγ 的比较

α = mA, a = c, β = B, b = e, γ = d

Α一种βbγ
CBed

因此,将 a 与 c 和 b 与 e 进行比较,我们得到 c =.e。

我们也可以为 a 和 b 做不同的组合。

在语法 S → m A c Bed

α = ε, a = m, β = A, b = c, γ = 床

一种βbγ
ΕACBed

因此,将 a 与 m 和 b 与 c 进行比较

∴m =。C

  • a<.b(小于)

如果生产的 RHS 的形式为 α a A β 和 A ⟹+ γb$,其中 γ 是 ε 或单个非终结符,则 a <.b。

示例- 在语法 S → m A c D

                                        一个 → 我

比较 m A c D 与 α a A β 和 A → i 与 A → γb$

一种Aβ
ΕA光盘
A →Γb$
A →iε

∴ α = ε, a = m, A = A, β = cD

∴ γ = ε,

和 b = 我

∴ 应用规则,

一个<。b 表示 m <。一世

  • a .> b(大于)

如果生产的 RHS 的形式为 αAbβ 和 A ⟹+ γa$,其中 $是 ε 或单个非终结符,则 a .> b。

示例- 在语法 S → m A c D

                                          一个 → 我

关于比较 m A cD 与 α a bβ 和 A → i 与 A → γa$

Α一种bβ
M一种cD
Α →Γa$
Α →iε

∴ α = m, A = A, b = c, β = D

在比较 i 和 γa $

∴ γ = ε, a = i, $= ε

∴ 在应用规则时,

a .> b 表示 i .> c。

终端符号之间的优先关系也可以通过解析树显示 -

计算算子优先关系的算法

输入- 运算符语法

输出- 终端和符号之间的优先关系。

方法

  • 开始

  • 对于每个产生式 A → B 1 , B 2 , … … … 。乙_

                          对于 i = 1 到 n – 1

                  如果 B i和 B i+1都是终结符,那么

                         设置 B i = B i+1

                 如果 i ≤ n - 2 且 B i和 B i+2都是终结符且 B i+1是非终结符,则

                         设置 B i = B i+2

                 如果 B i是终端且 B i+1是非终端,则对于所有 a 在 LEADING (B i+1 )

                         设置 B i <。一种

                如果 B i是非终结符且 B i+1是终结符,则对于 TRAILING (B i )中的所有 a

                          设置一个。> B i+1

  • 结尾

以上是 运算符语法中的优先关系是什么? 的全部内容, 来源链接: utcz.com/z/363354.html

回到顶部