6.4 表达式语法

基本上来说,任何普通算术表达式都是合法的.
此外,因为关系运算符(>,<=,等等)被视为返回整型,能够运算他们的返回值,有点看起来不像普通的表达式.

语法表达式中一个值得注意的限制地方是区间运算符仅允许出现在表达式最右方.
若表达式中有括号,在表达式括号部分中,那部分被认为是子表达式,区间表达式允许出现在子表达式的右边.
下面是一个有效格式的表达式:

另外,只有"="和"!="符号允许出现在区间表达式前面.
所以 5 > [0,2],或 4 + [1,4) 此类表达式是非法的.

在逗号分隔的参数列表中,比如给函数型触发器或者状态控制器参数赋值,每个列表中的表达式被认为是一个单独的子表达式,因此区间运算符可以出现在这些子表达式的末尾.

例子:
trigger1 = stateno=[0,1000] && p2stateno=[0,1000] ;非法,而且此种错误很难检测出来
trigger1 = (stateno=[0,1000]) && p2stateno=[0,1000] ;合法,满足区间表达式出现在表达式最右方以及子表达式右方.