You can use the integer
data type to store and manipulate integer values. The range of values supported
is implementation defined: you should avoid writing programs that depend on a particular range. However, OmniMark
will always be able to handle integer values between -2,147,483,648 and 2,147,483,647.
Because any string
expression can be used as a numeric value, saved pattern text, attribute
values, and even element
content can be used as a numeric value, provided that the contents form a valid
number.
Numbers with a radix other than 10 must be expressed as a string
expression, and can be converted to a
numeric expression using the operator base
.
You can specify an integer with underscores: this allows digits to be grouped for readability. For example
process local integer x set x to 1_000_000
Integers are automatically initialized to 0.
You can initialize integer variables when you declare them:
global integer quantity initial { 5 }
You can set the value of an integer
to the value of a numeric literal, another integer
, the
result of an integer
expression, or a string
expression or literal string
that evaluates
to an integer
value:
process local integer quantity local integer number-of-things local integer number-of-children local integer apples-per-child local string form-data initial { "27" with key "quantity" } set quantity to 5 set quantity to number-of-things set quantity to number-of-children * apples-per-child set quantity to form-data{"quantity"} set quantity to "27"
You can use the following operators with integer
s:
+
-
*
/
modulo
increment
decrement
<
>
<=
>=
=
!=
%
mask
union
difference
complement
shift
See data type conversion for information on how to
convert from integer
to other data types and vice versa.