若已知运算符之间的优先关系,可按如下步骤构造优先函数:
- 对每个运算符a(包括\(\sharp\)在内)令f(a)=g(a)=1
- 如果\(a \gtrdot b\)且\(f(a) \le g(b)\),令f(a)=g(b)+1
- 如果\(a \lessdot b\)且\(f(a) \ge g(b)\),令g(b)=f(a)+1
- 如果\(a \doteq b\)而\(f(a) \neq g(b)\),令\(min\left \{ f(a),g(b) \right \}=max\left \{ f(a),g(b) \right \}\)
- 重复\(2\sim 4\),直到过程收敛。如果存在重复过程中有一个值大于2n,则表明不存在算符优先函数。