Integer Language-Independent Type for <trademark>YAML</trademark> 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) <userinput>!!int</userinput> Examples canonical: 685230 decimal: +685_230 octal: 02472256 hexadecimal: 0x_0A_74_AE binary: 0b1010_0111_0100_1010_1110 sexagesimal: 190:20:30