CLEM 運算子

CLEM 語言提供了下列運算子。

表 1. CLEM 語言運算子
運算 備註(O) 優先級(參閱下一節)
or 在兩個 CLEM 表示式之間使用。如果其中一個表示式為 true 或兩個表示式同時為 true,則傳回 true 值。 10
and 在兩個 CLEM 表示式之間使用。如果兩個表示式同時為 true,則傳回 true 值。 9
= 用於任兩個可比較項目之間。若 ITEM1 等於 ITEMITEM2,則傳回值為 true。 7
== = 相同。 7
/= 用於任兩個可比較項目之間。若 ITEM1 等於 ITEM2,則傳回值為 true。 7
/== /= 相同。 7
> 用於任兩個可比較項目之間。若 ITEM1 完全大於 ITEM2,則傳回值為 true。 6
>= 用於任兩個可比較項目之間。若 ITEM1 大於或等於 ITEM2,則傳回值為 true。 6
< 用於任兩個可比較項目之間。如果 ITEM1 嚴格少於 ITEM2,則傳回 true 值。 6
<= 用於任兩個可比較項目之間。若 ITEM1 小於或等於 ITEM2,則傳回值為 true。 6
&&=_0 用於兩個整數之間。相當於布林表示式 INT1 && INT2 = 0。 6
&&/=_0 用於兩個整數之間。相當於布林表示式 INT1 && INT2 /= 0。 6
+ 將兩個數字相加:NUM1 + NUM2。 5
>< 連結兩個字串,例如 字串1 ><字串2. 5
- 將兩個數字相減:NUM1 - NUM2。也可以用在一個數字之前:- NUM。 5
* 用於將兩個數字相乘:NUM1 * NUM2。 4
&& 用於兩個整數之間。結果為整數 INT1 和 INT2 的位元 'and'。 4
&&~~ 用於兩個整數之間。結果為 INT1 的位元 "and" 和 INT2 的位元補碼。 4
|| 用於兩個整數之間。結果為 INT1 和 INT2 的位元 'inclusive or'。 4
~~ 用於整數之前。生成整數的位元補碼。 4
||/& 用於兩個整數之間。結果為 INT1 和 INT2 的位元 'exclusive or'。 4
INT1 << N 用於兩個整數之間。產生 INT 向左偏移 N 個位置的位元型樣。 4
INT1 >> N 用於兩個整數之間。產生 INT 向右偏移 N 個位置的位元型樣。 4
/ 用於將兩個數相除:NUM1 / NUM2。 4
** 用於兩個數字之間:BASE ** POWER。傳回 BASE 的 POWER 次冪。 3
rem 用於兩個整數之間:INT1 rem INT2。傳回餘數,INT1 - (INT1 div INT2) * INT2。 2
div 用於兩個整數之間:INT1 div INT2。執行整數除。 2

運算子優先級

優先級決定複式表示式(尤其是含有不止一個中置運算子且未加括號的表示式)的剖析順序。例如,

3 + 4 * 5 

剖析為 3 + (4 * 5) 而不是 (3 + 4) * 5 ,因為相對優先級規定 * 應先於 + 剖析。CLEM 語言中的每個運算子均有一個與其關聯的優先級值。此值越大,運算子在剖析清單中的重要性越高,即它將先於優先級值比它大的其他運算子處理。