Strings are specified by sequences of printable ASCII characters surrounded with double quotes. The string color set is large unless restricted by the with ... and clause, in which case it is small.
Declaration syntax
colset name = string [with string-exp1..string-exp2 [and int-exp1..int-exp2]];
Order
lexicographic (with the ASCII ordering)
Optional with clause
Restricts the character set of string color sets. The character set is specified by the string expressions string-exp1 and string-exp2.
Each string expression must evaluate to a string of length 1, and it must be the case that string-exp1<=string-exp2.
Optional and clause
Restricts the length of string color sets. The minimum and maximum length of the string is specified by the integer expressions int-exp1 and int-exp2. It must be the case that 0<= int-exp1 <= int-exp2.
Declaration examples
colset S = string;
A string color set is used in the example CP-net Simple Protocol.
colset LowerString = with “a”..”z”;
var lowerString : LowerString;
The CPN variable lowerString may contain only the lowercase letters a,b,…,z . For example, and owercas are legal values, but Lowercase letter and b34 are not.
colset SmallString = with “a”..”d” and 3..9
var smallString : SmallString;
The CPN variable smallString may contain only the letters a,b,c and d. Its length must be >=3 and <=9. For example, abcd and bbacdab are legal values, but ab and bcde are not.
Operations
s1^s2: concatenate the stringss1ands2-
String.size s: number of characters ins -
substring (s,i,len): extract a substring of length len starting at positioniins, first position is0 -
explode s: convert stringsto list of chars -
implode l: convert listlof chars to a string
See also color set functions.
For additional details and functions see the STRING signature in the SML Basis Library Manual.

You must be logged in to post a comment.