Lustre v6 中的 Lustre Core 部分支持的表達式種類中,支持布爾表達式。相關的表達式包括and
, or
, xor
, not
, #
, nor
。
相應的文法定義為
Expression ::= not Expression| Expression and Expression| Expression or Expression | Expression xor Expression | # (ExpressionList) | nor (ExpressionList)
and
與運算
and
運算符表示與運算,使用樣例如下
function andExpr(a,b: bool) returns (c: bool)
letc = a and b;
tel
or
或運算
or
運算符表示或運算,使用樣例如下
function orExpr(a,b: bool) returns (c: bool)
letc = a or b;
tel
xor
異或運算
xor
運算符表示異或運算,使用樣例如下
function xorExpr(a, b: bool) returns (c: bool)
letc = a xor b;
tel
not
取反運算
not
運算符表示取反運算,使用樣例如下
function notExpr (i: bool) returns (o: bool)
leto = not i;
tel
#
sharp 運算
#
運算符的輸入為布爾變量列表,列表中至多有一項true 時,表達式輸出為 true,反之為 false。
function sharp(i1,i2,i3: bool) returns (o: bool)
leto = #(i1, i2, i3);
tel
nor
運算
nor
運算符的輸入為布爾變量列表,列表中無 true 時,表達式輸出為 true,反之為 false。
function norExpr(a,b,c: bool) returns (o: bool)
leto = nor (a,b,c);
tel