Integer Language-Independent Type for
YAML Version 1.1
Working Draft 2005-02-11
Oren
Ben-Kiki
oren@ben-kiki.org
Clark
Evans
cce+yaml@clarkevans.com
Brian
Ingerson
ingy@ttul.org
2001-2005
Oren Ben-Kiki,
Clark Evans,
Brian Ingerson
This document may be freely copied provided it is not modified.
Status
This specification is a draft reflecting consensus reached by members of
the yaml-core
mailing list. Any questions regarding this draft should be
raised on this list.
URI:
tag:yaml.org,2002:int
Shorthand:
!!int
Kind:
Scalar.
Definition:
Mathematical integers.
Integers represent arbitrarily sized finite mathematical integers.
Integers can be formatted using the familiar decimal notation, may
have a leading 0x
to signal
hexadecimal, a leading 0b
to
indicate binary bits (base 2), or have leading
0
to signal an octal base.
Using :
allows expressing
integers in base 60, which is convenient for time and angle values.
Any _
characters in the
number are ignored, allowing a readable representation of large
values.
Scalars of this type should be represented by a native integer data
type, if possible. However, there are cases where an integer
provided may overflow the native type’s storage capability.
In this case, the processor should find some manner to round-trip
the integer, perhaps using a string based representation. In
general, integers representable using 32 binary digits should
safely round-trip through most systems.
Canonical Format:
0|-?[1-9]&[0-9]* # (base
10)
Resolution and Validation:
Valid values must match the following regular expression,
which may also be used for implicit tag resolution:
[-+]?0b[0-1_]+ # (base 2)
|[-+]?0[0-7_]+ # (base 8)
|[-+]?(0|[1-9][0-9_]*) # (base 10)
|[-+]?0x[0-9a-fA-F_]+ # (base 16)
|[-+]?[1-9][0-9_]*(:[0-5]?[0-9])+ # (base 60)
!!int Examples
canonical: 685230
decimal: +685_230
octal: 02472256
hexadecimal: 0x_0A_74_AE
binary: 0b1010_0111_0100_1010_1110
sexagesimal: 190:20:30