1. 单元颜色集:单元颜色集由简单元素组成,标号为();
声明语法:color name = unit [with new_unit]:
次序:不影响
从句选项:重命名这个值,定义标识符表示(),新值的名称必须是一个标识符。
声明示例:color U = unit; color E = unit with e;
2. 布尔颜色集:布尔值为真和假。
语法声明:color name = bool [with (new_false,new_true)];
顺序:假在真前
With选择性语句:重命名值就是定义表示真和假的标识符。新值的名字需要是标识符。
例子:color B = bool; color Answer = bool with(no, yes);
布尔量操作:not b (布尔值b取非);b1 andalso b2(布尔值和,and); b1 orelse b2(布尔值或,or)
3. 整数颜色集:整数就是没有小数点的数字。整数颜色集一般很大,除非有字句作出限制
声明语法: color name = int [with int-exp1…int-exp2];
顺序:整数的一般顺序
字句的设定:把整数颜色集限制在int-exp1与int-exp2之间,其中int-exp1小于等于int-exp2.
声明例子: color INT = int; color SmallInt = int with 1..10;
以上例子在简单协议中有引用。
Var smallInt : SmallInt;
CPN变量 smallInt可以在1到10的整数中取值,如,2是合法的,11和2.9是非法的。
操作: ~i : i的相反值; i1+i2 加法;i1-i2 减法;i1*i2 乘法;i1 div i2 除法,商;
I1 mod i2 模,余数;abs I i的绝对值; Int.min(i1,i2) i1、i2取小值;Int.max(i1,i2)
4.字符型颜色集: 字符型是一个包含在双引号中的由可打印的ASCII码字符组成的序列。
字符串颜色集是大的,除非受限于with…and字句,在这种情况下就是小的。
声明语法: color name = string [with string-exp1..string=exp2 [and int-exp1..int-exp2]];
排序: 按照字母排序(ASCII码标准)
可选的with字句: 限制字符串颜色集的字符集。字符集由字符串表达式string-exp1和 string-exp2说明。每一个字符串表达式必须计算到一个长为1的字符串,同时必须是在string-exp1<=string-exp2的条件下。
可选的and字句: 限制字符串颜色集的长度。由正数表达式int-3xp1和it-exp2来表示字符串的长度,这必须是在 0<=int-exp1<=int-exp2的条件下。
声明例子: color S = string; 在例子简单协议中使用了一个字符串颜色集
Color LowerString = with “a”..”z”; var lowerString : LowerString;
CPN变量lowerString只能包含小写字母a,b,…,z.不如说,”ab”和”lowercase”是合法的值,但是”Lowercase letters”和”ab 45”就不是。
Color SmallString = with “a”..”d” and 3..9 var smallString : smallString;
CON变量smallString may 只能包含字母a,b,c和d,长度大于等于3小于等于9.比如说”abcd”和”bbacdab”是合法的值,但是”ab”和”bcde”就不是。
操作: s1^s2 连接字符串s1和s2;
String.size s s中字符的数量;
substring (s,I,len)提出一个由位置i开始、长为len的字串。注意串的起始位置为0;
lode s 转化为字符串s为一个字符的表;
implode 1 转化字符的表1为一个字符串