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 stringss1
ands2
-
String.size s
: number of characters ins
-
substring (s,i,len)
: extract a substring of length len starting at positioni
ins
, first position is0
-
explode s
: convert strings
to list of chars -
implode l
: convert listl
of 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.