@swiftbrowser/wasm-sdk-foundation 0.0.0-stage → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/LICENSE.txt +1445 -0
  2. package/README.md +24 -2
  3. package/files.json +366 -0
  4. package/package.json +18 -4
  5. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/HTMLparser.h +320 -0
  6. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/HTMLtree.h +147 -0
  7. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/SAX.h +204 -0
  8. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/SAX2.h +173 -0
  9. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/c14n.h +128 -0
  10. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/catalog.h +182 -0
  11. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/chvalid.h +230 -0
  12. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/debugXML.h +217 -0
  13. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/dict.h +81 -0
  14. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/encoding.h +233 -0
  15. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/entities.h +151 -0
  16. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/globals.h +529 -0
  17. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/hash.h +236 -0
  18. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/list.h +137 -0
  19. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/nanoftp.h +186 -0
  20. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/nanohttp.h +81 -0
  21. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/parser.h +1265 -0
  22. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/parserInternals.h +662 -0
  23. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/pattern.h +100 -0
  24. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/relaxng.h +218 -0
  25. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/schemasInternals.h +958 -0
  26. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/schematron.h +142 -0
  27. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/threads.h +94 -0
  28. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/tree.h +1314 -0
  29. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/uri.h +94 -0
  30. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/valid.h +448 -0
  31. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xinclude.h +129 -0
  32. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xlink.h +189 -0
  33. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlIO.h +369 -0
  34. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlautomata.h +146 -0
  35. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlerror.h +919 -0
  36. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlexports.h +50 -0
  37. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlmemory.h +228 -0
  38. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlmodule.h +57 -0
  39. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlreader.h +428 -0
  40. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlregexp.h +222 -0
  41. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlsave.h +88 -0
  42. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlschemas.h +246 -0
  43. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlschemastypes.h +152 -0
  44. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlstring.h +140 -0
  45. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlunicode.h +202 -0
  46. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlversion.h +526 -0
  47. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xmlwriter.h +488 -0
  48. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xpath.h +575 -0
  49. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xpathInternals.h +632 -0
  50. package/wasm32-unknown-wasip1/WASI.sdk/include/libxml2/libxml/xpointer.h +137 -0
  51. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFArray.h +673 -0
  52. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFAttributedString.h +157 -0
  53. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFAttributedStringPriv.h +25 -0
  54. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFAvailability.h +236 -0
  55. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBag.h +97 -0
  56. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBase.h +702 -0
  57. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBigNumber.h +76 -0
  58. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBinaryHeap.h +294 -0
  59. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBitVector.h +49 -0
  60. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBundle.h +349 -0
  61. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBundlePriv.h +334 -0
  62. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBundle_BinaryTypes.h +61 -0
  63. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFBurstTrie.h +181 -0
  64. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFByteOrder.h +305 -0
  65. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFCalendar.h +116 -0
  66. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFCalendarPriv.h +52 -0
  67. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFCharacterSet.h +387 -0
  68. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFCharacterSetPriv.h +78 -0
  69. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFConstantKeys.h +128 -0
  70. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFData.h +79 -0
  71. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDate.h +113 -0
  72. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDateComponents.h +92 -0
  73. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDateFormatter.h +193 -0
  74. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDateFormatter_Private.h +31 -0
  75. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDateInterval.h +62 -0
  76. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDateIntervalFormatter.h +96 -0
  77. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFDictionary.h +674 -0
  78. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFError.h +183 -0
  79. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFError_Private.h +27 -0
  80. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFKnownLocations.h +42 -0
  81. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFListFormatter.h +32 -0
  82. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFLocale.h +204 -0
  83. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFLocale_Private.h +35 -0
  84. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFLocking.h +124 -0
  85. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFLogUtilities.h +52 -0
  86. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFMachPort.h +53 -0
  87. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFMessagePort.h +66 -0
  88. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFNotificationCenter.h +81 -0
  89. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFNumber.h +129 -0
  90. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFNumberFormatter.h +174 -0
  91. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFNumber_Private.h +30 -0
  92. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFOverflow.h +88 -0
  93. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPlugIn.h +124 -0
  94. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPlugInCOM.h +117 -0
  95. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPreferences.h +130 -0
  96. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPriv.h +721 -0
  97. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPropertyList.h +151 -0
  98. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFPropertyList_Private.h +19 -0
  99. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFRegularExpression.h +68 -0
  100. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFRelativeDateTimeFormatter.h +61 -0
  101. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFRunArray.h +57 -0
  102. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFRunLoop.h +203 -0
  103. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFRuntime.h +281 -0
  104. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFSet.h +491 -0
  105. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFSocket.h +220 -0
  106. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStorage.h +296 -0
  107. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStream.h +505 -0
  108. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStreamAbstract.h +181 -0
  109. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStreamPriv.h +126 -0
  110. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFString.h +915 -0
  111. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringDefaultEncoding.h +45 -0
  112. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringEncodingConverter.h +82 -0
  113. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringEncodingConverterExt.h +121 -0
  114. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringEncodingConverterPriv.h +47 -0
  115. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringEncodingDatabase.h +23 -0
  116. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFStringEncodingExt.h +184 -0
  117. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFString_Private.h +32 -0
  118. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFTargetConditionals.h +284 -0
  119. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFTimeZone.h +98 -0
  120. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFTree.h +330 -0
  121. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFURL.h +1256 -0
  122. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFURLAccess.h +128 -0
  123. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFURLComponents.h +123 -0
  124. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFURLPriv.h +879 -0
  125. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUUID.h +78 -0
  126. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUniChar.h +244 -0
  127. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUnicodeDecomposition.h +35 -0
  128. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUnicodePrecomposition.h +23 -0
  129. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUserNotification.h +185 -0
  130. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CFUtilities.h +27 -0
  131. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/CoreFoundation.h +105 -0
  132. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/ForFoundationOnly.h +816 -0
  133. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/ForSwiftFoundationOnly.h +689 -0
  134. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/module.modulemap +8 -0
  135. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/CoreFoundation/static-module.map +7 -0
  136. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/CFUniCharBitmapData.h +17 -0
  137. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/CFUniCharBitmapData.inc.h +14707 -0
  138. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/CFUniCharBitmapDataAccess.h +16 -0
  139. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/_CShimsMacros.h +24 -0
  140. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/_CShimsTargetConditionals.h +56 -0
  141. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/_CStdlib.h +169 -0
  142. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/_FoundationCShims.h +32 -0
  143. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/bplist_shims.h +19 -0
  144. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/filemanager_shims.h +156 -0
  145. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/io_shims.h +89 -0
  146. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/module.modulemap +5 -0
  147. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/platform_shims.h +112 -0
  148. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/string_shims.h +52 -0
  149. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_FoundationCShims/uuid.h +81 -0
  150. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/alphaindex.h +766 -0
  151. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/appendable.h +239 -0
  152. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/basictz.h +248 -0
  153. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/brkiter.h +694 -0
  154. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/bytestream.h +307 -0
  155. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/bytestrie.h +568 -0
  156. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/bytestriebuilder.h +193 -0
  157. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/calendar.h +2609 -0
  158. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/caniter.h +215 -0
  159. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/casemap.h +497 -0
  160. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/char16ptr.h +384 -0
  161. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/chariter.h +734 -0
  162. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/choicfmt.h +601 -0
  163. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/coleitr.h +411 -0
  164. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/coll.h +1387 -0
  165. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/compactdecimalformat.h +196 -0
  166. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/curramt.h +133 -0
  167. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/currpinf.h +274 -0
  168. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/currunit.h +146 -0
  169. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/datefmt.h +968 -0
  170. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dbbi.h +48 -0
  171. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dcfmtsym.h +636 -0
  172. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/decimfmt.h +2233 -0
  173. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/displayoptions.h +270 -0
  174. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/docmain.h +247 -0
  175. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtfmtsym.h +1055 -0
  176. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtintrv.h +163 -0
  177. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtitvfmt.h +1231 -0
  178. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtitvinf.h +524 -0
  179. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtptngen.h +676 -0
  180. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/dtrule.h +256 -0
  181. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/edits.h +531 -0
  182. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/enumset.h +69 -0
  183. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/errorcode.h +144 -0
  184. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/fieldpos.h +298 -0
  185. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/filteredbrk.h +152 -0
  186. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/fmtable.h +758 -0
  187. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/format.h +316 -0
  188. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/formattednumber.h +215 -0
  189. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/formattedvalue.h +318 -0
  190. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/fpositer.h +124 -0
  191. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/gender.h +122 -0
  192. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/gregocal.h +737 -0
  193. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/icudataver.h +43 -0
  194. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/icuplug.h +391 -0
  195. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/idna.h +333 -0
  196. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/listformatter.h +291 -0
  197. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/localebuilder.h +309 -0
  198. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/localematcher.h +710 -0
  199. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/localpointer.h +609 -0
  200. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/locdspnm.h +211 -0
  201. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/locid.h +1293 -0
  202. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/measfmt.h +501 -0
  203. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/measunit.h +3928 -0
  204. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/measure.h +174 -0
  205. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/messagepattern.h +950 -0
  206. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/module.modulemap +209 -0
  207. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/msgfmt.h +1117 -0
  208. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/normalizer2.h +791 -0
  209. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/normlzr.h +816 -0
  210. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/nounit.h +86 -0
  211. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/numberformatter.h +2862 -0
  212. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/numberrangeformatter.h +802 -0
  213. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/numfmt.h +1299 -0
  214. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/numsys.h +220 -0
  215. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/parseerr.h +94 -0
  216. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/parsepos.h +237 -0
  217. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/platform.h +874 -0
  218. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/plurfmt.h +601 -0
  219. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/plurrule.h +591 -0
  220. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ptypes.h +66 -0
  221. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/putil.h +183 -0
  222. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/rbbi.h +902 -0
  223. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/rbnf.h +1153 -0
  224. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/rbtz.h +373 -0
  225. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/regex.h +1882 -0
  226. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/region.h +229 -0
  227. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/reldatefmt.h +758 -0
  228. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/rep.h +266 -0
  229. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/resbund.h +489 -0
  230. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/schriter.h +187 -0
  231. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/scientificnumberformatter.h +222 -0
  232. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/search.h +580 -0
  233. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/selfmt.h +374 -0
  234. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/simpleformatter.h +414 -0
  235. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/simplenumberformatter.h +326 -0
  236. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/simpletz.h +940 -0
  237. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/smpdtfmt.h +1383 -0
  238. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/sortkey.h +344 -0
  239. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/std_string.h +41 -0
  240. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/strenum.h +281 -0
  241. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/stringoptions.h +190 -0
  242. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/stringpiece.h +354 -0
  243. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/stringtriebuilder.h +426 -0
  244. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/stsearch.h +509 -0
  245. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/symtable.h +119 -0
  246. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tblcoll.h +886 -0
  247. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/timezone.h +1067 -0
  248. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tmunit.h +142 -0
  249. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tmutamt.h +174 -0
  250. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tmutfmt.h +238 -0
  251. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/translit.h +1593 -0
  252. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tzfmt.h +1102 -0
  253. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tznames.h +419 -0
  254. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tzrule.h +820 -0
  255. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/tztrans.h +201 -0
  256. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ualoc.h +372 -0
  257. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uameasureformat.h +487 -0
  258. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uameasureunit.h +249 -0
  259. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uatimeunitformat.h +377 -0
  260. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uatimezone.h +114 -0
  261. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ubidi.h +2368 -0
  262. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ubiditransform.h +326 -0
  263. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ubrk.h +684 -0
  264. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucal.h +1825 -0
  265. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucasemap.h +388 -0
  266. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucat.h +160 -0
  267. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uchar.h +4410 -0
  268. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucharstrie.h +623 -0
  269. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucharstriebuilder.h +193 -0
  270. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uchriter.h +393 -0
  271. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uclean.h +262 -0
  272. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucnv.h +2053 -0
  273. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucnv_cb.h +164 -0
  274. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucnv_err.h +465 -0
  275. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucnvsel.h +193 -0
  276. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucol.h +1649 -0
  277. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucoleitr.h +344 -0
  278. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uconfig.h +501 -0
  279. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucpmap.h +158 -0
  280. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucptrie.h +645 -0
  281. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucsdet.h +426 -0
  282. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ucurr.h +466 -0
  283. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udat.h +1767 -0
  284. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udata.h +454 -0
  285. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udateintervalformat.h +458 -0
  286. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udatintv.h +146 -0
  287. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udatpg.h +806 -0
  288. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udisplaycontext.h +233 -0
  289. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/udisplayoptions.h +321 -0
  290. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uenum.h +209 -0
  291. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ufieldpositer.h +123 -0
  292. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uformattable.h +290 -0
  293. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uformattednumber.h +224 -0
  294. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uformattedvalue.h +445 -0
  295. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ugender.h +86 -0
  296. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uidna.h +794 -0
  297. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uiter.h +709 -0
  298. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uldnames.h +307 -0
  299. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ulistformatter.h +333 -0
  300. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uloc.h +1437 -0
  301. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ulocale.h +226 -0
  302. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ulocbuilder.h +437 -0
  303. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ulocdata.h +299 -0
  304. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/umachine.h +491 -0
  305. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/umisc.h +62 -0
  306. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/umsg.h +628 -0
  307. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/umutablecptrie.h +240 -0
  308. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unifilt.h +136 -0
  309. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unifunct.h +132 -0
  310. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unimatch.h +168 -0
  311. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unirepl.h +103 -0
  312. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uniset.h +1909 -0
  313. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unistr.h +5095 -0
  314. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unorm.h +476 -0
  315. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unorm2.h +626 -0
  316. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unum.h +1524 -0
  317. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unumberformatter.h +576 -0
  318. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unumberoptions.h +173 -0
  319. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unumberrangeformatter.h +471 -0
  320. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/unumsys.h +176 -0
  321. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uobject.h +324 -0
  322. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uplrule.h +82 -0
  323. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/upluralrules.h +263 -0
  324. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/urbtok.h +276 -0
  325. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uregex.h +1617 -0
  326. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uregion.h +252 -0
  327. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ureldatefmt.h +510 -0
  328. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/urename.h +4026 -0
  329. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/urep.h +157 -0
  330. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ures.h +912 -0
  331. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uscript.h +742 -0
  332. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/usearch.h +911 -0
  333. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uset.h +1898 -0
  334. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/usetiter.h +323 -0
  335. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ushape.h +476 -0
  336. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/usimplenumberformatter.h +297 -0
  337. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uspoof.h +1852 -0
  338. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/usprep.h +274 -0
  339. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ustdio.h +1021 -0
  340. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ustream.h +69 -0
  341. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ustring.h +1719 -0
  342. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/ustringtrie.h +97 -0
  343. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utext.h +1613 -0
  344. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utf.h +225 -0
  345. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utf16.h +740 -0
  346. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utf32.h +25 -0
  347. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utf8.h +882 -0
  348. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utf_old.h +1207 -0
  349. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utmscale.h +490 -0
  350. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utrace.h +506 -0
  351. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utrans.h +660 -0
  352. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/utypes.h +826 -0
  353. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uvernum.h +191 -0
  354. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/uversion.h +230 -0
  355. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/_foundation_unicode/vtzone.h +471 -0
  356. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/Foundation.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  357. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/FoundationEssentials.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  358. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/FoundationInternationalization.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  359. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/FoundationXML.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  360. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/_FoundationCollections.swiftmodule/wasm32-unknown-wasip1.swiftmodule +0 -0
  361. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libCoreFoundation.a +0 -0
  362. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libFoundation.a +0 -0
  363. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libFoundationEssentials.a +0 -0
  364. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libFoundationInternationalization.a +0 -0
  365. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/libFoundationXML.a +0 -0
  366. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/lib_CFXMLInterface.a +0 -0
  367. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/lib_FoundationCShims.a +0 -0
  368. package/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/wasi/lib_FoundationCollections.a +0 -0
@@ -0,0 +1,1153 @@
1
+ // © 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
3
+ /*
4
+ *******************************************************************************
5
+ * Copyright (C) 1997-2015, International Business Machines Corporation and others.
6
+ * All Rights Reserved.
7
+ *******************************************************************************
8
+ */
9
+
10
+ #ifndef RBNF_H
11
+ #define RBNF_H
12
+
13
+ #include <_foundation_unicode/utypes.h>
14
+
15
+ #if U_SHOW_CPLUSPLUS_API
16
+
17
+ /**
18
+ * \file
19
+ * \brief C++ API: Rule Based Number Format
20
+ */
21
+
22
+ /**
23
+ * \def U_HAVE_RBNF
24
+ * This will be 0 if RBNF support is not included in ICU
25
+ * and 1 if it is.
26
+ *
27
+ * @stable ICU 2.4
28
+ */
29
+ #if UCONFIG_NO_FORMATTING
30
+ #define U_HAVE_RBNF 0
31
+ #else
32
+ #define U_HAVE_RBNF 1
33
+
34
+ #include <_foundation_unicode/dcfmtsym.h>
35
+ #include <_foundation_unicode/fmtable.h>
36
+ #include <_foundation_unicode/locid.h>
37
+ #include <_foundation_unicode/numfmt.h>
38
+ #include <_foundation_unicode/unistr.h>
39
+ #include <_foundation_unicode/strenum.h>
40
+ #include <_foundation_unicode/brkiter.h>
41
+ #include <_foundation_unicode/upluralrules.h>
42
+
43
+ U_NAMESPACE_BEGIN
44
+
45
+ class NFRule;
46
+ class NFRuleSet;
47
+ class LocalizationInfo;
48
+ class PluralFormat;
49
+ class RuleBasedCollator;
50
+
51
+ /**
52
+ * Tags for the predefined rulesets.
53
+ *
54
+ * @stable ICU 2.2
55
+ */
56
+ enum URBNFRuleSetTag {
57
+ /**
58
+ * Requests predefined ruleset for spelling out numeric values in words.
59
+ * @stable ICU 2.2
60
+ */
61
+ URBNF_SPELLOUT,
62
+ /**
63
+ * Requests predefined ruleset for the ordinal form of a number.
64
+ * @stable ICU 2.2
65
+ */
66
+ URBNF_ORDINAL,
67
+ #ifndef U_HIDE_DEPRECATED_API
68
+ /**
69
+ * Requests predefined ruleset for formatting a value as a duration in hours, minutes, and seconds.
70
+ * @deprecated ICU 74 Use MeasureFormat instead.
71
+ */
72
+ URBNF_DURATION,
73
+ #endif // U_HIDE_DERECATED_API
74
+ /**
75
+ * Requests predefined ruleset for various non-place-value numbering systems.
76
+ * WARNING: The same resource contains rule sets for a variety of different numbering systems.
77
+ * You need to call setDefaultRuleSet() on the formatter to choose the actual numbering system.
78
+ * @stable ICU 2.2
79
+ */
80
+ URBNF_NUMBERING_SYSTEM = 3,
81
+ #ifndef U_HIDE_DEPRECATED_API
82
+ /**
83
+ * One more than the highest normal URBNFRuleSetTag value.
84
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
85
+ */
86
+ URBNF_COUNT
87
+ #endif // U_HIDE_DEPRECATED_API
88
+ };
89
+
90
+ /**
91
+ * The RuleBasedNumberFormat class formats numbers according to a set of rules. This number formatter is
92
+ * typically used for spelling out numeric values in words (e.g., 25,3476 as
93
+ * &quot;twenty-five thousand three hundred seventy-six&quot; or &quot;vingt-cinq mille trois
94
+ * cents soixante-seize&quot; or
95
+ * &quot;f&uuml;nfundzwanzigtausenddreihundertsechsundsiebzig&quot;), but can also be used for
96
+ * other complicated formatting tasks, such as formatting a number of seconds as hours,
97
+ * minutes and seconds (e.g., 3,730 as &quot;1:02:10&quot;).
98
+ *
99
+ * <p>The resources contain three predefined formatters for each locale: spellout, which
100
+ * spells out a value in words (123 is &quot;one hundred twenty-three&quot;); ordinal, which
101
+ * appends an ordinal suffix to the end of a numeral (123 is &quot;123rd&quot;); and
102
+ * duration, which shows a duration in seconds as hours, minutes, and seconds (123 is
103
+ * &quot;2:03&quot;).&nbsp; The client can also define more specialized <tt>RuleBasedNumberFormat</tt>s
104
+ * by supplying programmer-defined rule sets.</p>
105
+ *
106
+ * <p>The behavior of a <tt>RuleBasedNumberFormat</tt> is specified by a textual description
107
+ * that is either passed to the constructor as a <tt>String</tt> or loaded from a resource
108
+ * bundle. In its simplest form, the description consists of a semicolon-delimited list of <em>rules.</em>
109
+ * Each rule has a string of output text and a value or range of values it is applicable to.
110
+ * In a typical spellout rule set, the first twenty rules are the words for the numbers from
111
+ * 0 to 19:</p>
112
+ *
113
+ * <pre>zero; one; two; three; four; five; six; seven; eight; nine;
114
+ * ten; eleven; twelve; thirteen; fourteen; fifteen; sixteen; seventeen; eighteen; nineteen;</pre>
115
+ *
116
+ * <p>For larger numbers, we can use the preceding set of rules to format the ones place, and
117
+ * we only have to supply the words for the multiples of 10:</p>
118
+ *
119
+ * <pre> 20: twenty[-&gt;&gt;];
120
+ * 30: thirty[-&gt;&gt;];
121
+ * 40: forty[-&gt;&gt;];
122
+ * 50: fifty[-&gt;&gt;];
123
+ * 60: sixty[-&gt;&gt;];
124
+ * 70: seventy[-&gt;&gt;];
125
+ * 80: eighty[-&gt;&gt;];
126
+ * 90: ninety[-&gt;&gt;];</pre>
127
+ *
128
+ * <p>In these rules, the <em>base value</em> is spelled out explicitly and set off from the
129
+ * rule's output text with a colon. The rules are in a sorted list, and a rule is applicable
130
+ * to all numbers from its own base value to one less than the next rule's base value. The
131
+ * &quot;&gt;&gt;&quot; token is called a <em>substitution</em> and tells the formatter to
132
+ * isolate the number's ones digit, format it using this same set of rules, and place the
133
+ * result at the position of the &quot;&gt;&gt;&quot; token. Text in brackets is omitted if
134
+ * the number being formatted is an even multiple of 10 (the hyphen is a literal hyphen; 24
135
+ * is &quot;twenty-four,&quot; not &quot;twenty four&quot;).</p>
136
+ *
137
+ * <p>For even larger numbers, we can actually look up several parts of the number in the
138
+ * list:</p>
139
+ *
140
+ * <pre>100: &lt;&lt; hundred[ &gt;&gt;];</pre>
141
+ *
142
+ * <p>The &quot;&lt;&lt;&quot; represents a new kind of substitution. The &lt;&lt; isolates
143
+ * the hundreds digit (and any digits to its left), formats it using this same rule set, and
144
+ * places the result where the &quot;&lt;&lt;&quot; was. Notice also that the meaning of
145
+ * &gt;&gt; has changed: it now refers to both the tens and the ones digits. The meaning of
146
+ * both substitutions depends on the rule's base value. The base value determines the rule's <em>divisor,</em>
147
+ * which is the highest power of 10 that is less than or equal to the base value (the user
148
+ * can change this). To fill in the substitutions, the formatter divides the number being
149
+ * formatted by the divisor. The integral quotient is used to fill in the &lt;&lt;
150
+ * substitution, and the remainder is used to fill in the &gt;&gt; substitution. The meaning
151
+ * of the brackets changes similarly: text in brackets is omitted if the value being
152
+ * formatted is an even multiple of the rule's divisor. The rules are applied recursively, so
153
+ * if a substitution is filled in with text that includes another substitution, that
154
+ * substitution is also filled in.</p>
155
+ *
156
+ * <p>This rule covers values up to 999, at which point we add another rule:</p>
157
+ *
158
+ * <pre>1000: &lt;&lt; thousand[ &gt;&gt;];</pre>
159
+ *
160
+ * <p>Again, the meanings of the brackets and substitution tokens shift because the rule's
161
+ * base value is a higher power of 10, changing the rule's divisor. This rule can actually be
162
+ * used all the way up to 999,999. This allows us to finish out the rules as follows:</p>
163
+ *
164
+ * <pre> 1,000,000: &lt;&lt; million[ &gt;&gt;];
165
+ * 1,000,000,000: &lt;&lt; billion[ &gt;&gt;];
166
+ * 1,000,000,000,000: &lt;&lt; trillion[ &gt;&gt;];
167
+ * 1,000,000,000,000,000: OUT OF RANGE!;</pre>
168
+ *
169
+ * <p>Commas, periods, and spaces can be used in the base values to improve legibility and
170
+ * are ignored by the rule parser. The last rule in the list is customarily treated as an
171
+ * &quot;overflow rule,&quot; applying to everything from its base value on up, and often (as
172
+ * in this example) being used to print out an error message or default representation.
173
+ * Notice also that the size of the major groupings in large numbers is controlled by the
174
+ * spacing of the rules: because in English we group numbers by thousand, the higher rules
175
+ * are separated from each other by a factor of 1,000.</p>
176
+ *
177
+ * <p>To see how these rules actually work in practice, consider the following example:
178
+ * Formatting 25,430 with this rule set would work like this:</p>
179
+ *
180
+ * <table border="0" width="100%">
181
+ * <tr>
182
+ * <td><strong>&lt;&lt; thousand &gt;&gt;</strong></td>
183
+ * <td>[the rule whose base value is 1,000 is applicable to 25,340]</td>
184
+ * </tr>
185
+ * <tr>
186
+ * <td><strong>twenty-&gt;&gt;</strong> thousand &gt;&gt;</td>
187
+ * <td>[25,340 over 1,000 is 25. The rule for 20 applies.]</td>
188
+ * </tr>
189
+ * <tr>
190
+ * <td>twenty-<strong>five</strong> thousand &gt;&gt;</td>
191
+ * <td>[25 mod 10 is 5. The rule for 5 is &quot;five.&quot;</td>
192
+ * </tr>
193
+ * <tr>
194
+ * <td>twenty-five thousand <strong>&lt;&lt; hundred &gt;&gt;</strong></td>
195
+ * <td>[25,340 mod 1,000 is 340. The rule for 100 applies.]</td>
196
+ * </tr>
197
+ * <tr>
198
+ * <td>twenty-five thousand <strong>three</strong> hundred &gt;&gt;</td>
199
+ * <td>[340 over 100 is 3. The rule for 3 is &quot;three.&quot;]</td>
200
+ * </tr>
201
+ * <tr>
202
+ * <td>twenty-five thousand three hundred <strong>forty</strong></td>
203
+ * <td>[340 mod 100 is 40. The rule for 40 applies. Since 40 divides
204
+ * evenly by 10, the hyphen and substitution in the brackets are omitted.]</td>
205
+ * </tr>
206
+ * </table>
207
+ *
208
+ * <p>The above syntax suffices only to format positive integers. To format negative numbers,
209
+ * we add a special rule:</p>
210
+ *
211
+ * <pre>-x: minus &gt;&gt;;</pre>
212
+ *
213
+ * <p>This is called a <em>negative-number rule,</em> and is identified by &quot;-x&quot;
214
+ * where the base value would be. This rule is used to format all negative numbers. the
215
+ * &gt;&gt; token here means &quot;find the number's absolute value, format it with these
216
+ * rules, and put the result here.&quot;</p>
217
+ *
218
+ * <p>We also add a special rule called a <em>fraction rule </em>for numbers with fractional
219
+ * parts:</p>
220
+ *
221
+ * <pre>x.x: &lt;&lt; point &gt;&gt;;</pre>
222
+ *
223
+ * <p>This rule is used for all positive non-integers (negative non-integers pass through the
224
+ * negative-number rule first and then through this rule). Here, the &lt;&lt; token refers to
225
+ * the number's integral part, and the &gt;&gt; to the number's fractional part. The
226
+ * fractional part is formatted as a series of single-digit numbers (e.g., 123.456 would be
227
+ * formatted as &quot;one hundred twenty-three point four five six&quot;).</p>
228
+ *
229
+ * <p>To see how this rule syntax is applied to various languages, examine the resource data.</p>
230
+ *
231
+ * <p>There is actually much more flexibility built into the rule language than the
232
+ * description above shows. A formatter may own multiple rule sets, which can be selected by
233
+ * the caller, and which can use each other to fill in their substitutions. Substitutions can
234
+ * also be filled in with digits, using a DecimalFormat object. There is syntax that can be
235
+ * used to alter a rule's divisor in various ways. And there is provision for much more
236
+ * flexible fraction handling. A complete description of the rule syntax follows:</p>
237
+ *
238
+ * <hr>
239
+ *
240
+ * <p>The description of a <tt>RuleBasedNumberFormat</tt>'s behavior consists of one or more <em>rule
241
+ * sets.</em> Each rule set consists of a name, a colon, and a list of <em>rules.</em> A rule
242
+ * set name must begin with a % sign. Rule sets with names that begin with a single % sign
243
+ * are <em>public:</em> the caller can specify that they be used to format and parse numbers.
244
+ * Rule sets with names that begin with %% are <em>private:</em> they exist only for the use
245
+ * of other rule sets. If a formatter only has one rule set, the name may be omitted.</p>
246
+ *
247
+ * <p>The user can also specify a special &quot;rule set&quot; named <tt>%%lenient-parse</tt>.
248
+ * The body of <tt>%%lenient-parse</tt> isn't a set of number-formatting rules, but a <tt>RuleBasedCollator</tt>
249
+ * description which is used to define equivalences for lenient parsing. For more information
250
+ * on the syntax, see <tt>RuleBasedCollator</tt>. For more information on lenient parsing,
251
+ * see <tt>setLenientParse()</tt>. <em>Note:</em> symbols that have syntactic meaning
252
+ * in collation rules, such as '&amp;', have no particular meaning when appearing outside
253
+ * of the <tt>lenient-parse</tt> rule set.</p>
254
+ *
255
+ * <p>The body of a rule set consists of an ordered, semicolon-delimited list of <em>rules.</em>
256
+ * Internally, every rule has a base value, a divisor, rule text, and zero, one, or two <em>substitutions.</em>
257
+ * These parameters are controlled by the description syntax, which consists of a <em>rule
258
+ * descriptor,</em> a colon, and a <em>rule body.</em></p>
259
+ *
260
+ * <p>A rule descriptor can take one of the following forms (text in <em>italics</em> is the
261
+ * name of a token):</p>
262
+ *
263
+ * <table border="0" width="100%">
264
+ * <tr>
265
+ * <td><em>bv</em>:</td>
266
+ * <td><em>bv</em> specifies the rule's base value. <em>bv</em> is a decimal
267
+ * number expressed using ASCII digits. <em>bv</em> may contain spaces, period, and commas,
268
+ * which are ignored. The rule's divisor is the highest power of 10 less than or equal to
269
+ * the base value.</td>
270
+ * </tr>
271
+ * <tr>
272
+ * <td><em>bv</em>/<em>rad</em>:</td>
273
+ * <td><em>bv</em> specifies the rule's base value. The rule's divisor is the
274
+ * highest power of <em>rad</em> less than or equal to the base value.</td>
275
+ * </tr>
276
+ * <tr>
277
+ * <td><em>bv</em>&gt;:</td>
278
+ * <td><em>bv</em> specifies the rule's base value. To calculate the divisor,
279
+ * let the radix be 10, and the exponent be the highest exponent of the radix that yields a
280
+ * result less than or equal to the base value. Every &gt; character after the base value
281
+ * decreases the exponent by 1. If the exponent is positive or 0, the divisor is the radix
282
+ * raised to the power of the exponent; otherwise, the divisor is 1.</td>
283
+ * </tr>
284
+ * <tr>
285
+ * <td><em>bv</em>/<em>rad</em>&gt;:</td>
286
+ * <td><em>bv</em> specifies the rule's base value. To calculate the divisor,
287
+ * let the radix be <em>rad</em>, and the exponent be the highest exponent of the radix that
288
+ * yields a result less than or equal to the base value. Every &gt; character after the radix
289
+ * decreases the exponent by 1. If the exponent is positive or 0, the divisor is the radix
290
+ * raised to the power of the exponent; otherwise, the divisor is 1.</td>
291
+ * </tr>
292
+ * <tr>
293
+ * <td>-x:</td>
294
+ * <td>The rule is a negative-number rule.</td>
295
+ * </tr>
296
+ * <tr>
297
+ * <td>x.x:</td>
298
+ * <td>The rule is an <em>improper fraction rule</em>. If the full stop in
299
+ * the middle of the rule name is replaced with the decimal point
300
+ * that is used in the language or DecimalFormatSymbols, then that rule will
301
+ * have precedence when formatting and parsing this rule. For example, some
302
+ * languages use the comma, and can thus be written as x,x instead. For example,
303
+ * you can use "x.x: &lt;&lt; point &gt;&gt;;x,x: &lt;&lt; comma &gt;&gt;;" to
304
+ * handle the decimal point that matches the language's natural spelling of
305
+ * the punctuation of either the full stop or comma.</td>
306
+ * </tr>
307
+ * <tr>
308
+ * <td>0.x:</td>
309
+ * <td>The rule is a <em>proper fraction rule</em>. If the full stop in
310
+ * the middle of the rule name is replaced with the decimal point
311
+ * that is used in the language or DecimalFormatSymbols, then that rule will
312
+ * have precedence when formatting and parsing this rule. For example, some
313
+ * languages use the comma, and can thus be written as 0,x instead. For example,
314
+ * you can use "0.x: point &gt;&gt;;0,x: comma &gt;&gt;;" to
315
+ * handle the decimal point that matches the language's natural spelling of
316
+ * the punctuation of either the full stop or comma.</td>
317
+ * </tr>
318
+ * <tr>
319
+ * <td>x.0:</td>
320
+ * <td>The rule is a <em>default rule</em>. If the full stop in
321
+ * the middle of the rule name is replaced with the decimal point
322
+ * that is used in the language or DecimalFormatSymbols, then that rule will
323
+ * have precedence when formatting and parsing this rule. For example, some
324
+ * languages use the comma, and can thus be written as x,0 instead. For example,
325
+ * you can use "x.0: &lt;&lt; point;x,0: &lt;&lt; comma;" to
326
+ * handle the decimal point that matches the language's natural spelling of
327
+ * the punctuation of either the full stop or comma.</td>
328
+ * </tr>
329
+ * <tr>
330
+ * <td>Inf:</td>
331
+ * <td>The rule for infinity.</td>
332
+ * </tr>
333
+ * <tr>
334
+ * <td>NaN:</td>
335
+ * <td>The rule for an IEEE 754 NaN (not a number).</td>
336
+ * </tr>
337
+ * <tr>
338
+ * <td><em>nothing</em></td>
339
+ * <td>If the rule's rule descriptor is left out, the base value is one plus the
340
+ * preceding rule's base value (or zero if this is the first rule in the list) in a normal
341
+ * rule set.&nbsp; In a fraction rule set, the base value is the same as the preceding rule's
342
+ * base value.</td>
343
+ * </tr>
344
+ * </table>
345
+ *
346
+ * <p>A rule set may be either a regular rule set or a <em>fraction rule set,</em> depending
347
+ * on whether it is used to format a number's integral part (or the whole number) or a
348
+ * number's fractional part. Using a rule set to format a rule's fractional part makes it a
349
+ * fraction rule set.</p>
350
+ *
351
+ * <p>Which rule is used to format a number is defined according to one of the following
352
+ * algorithms: If the rule set is a regular rule set, do the following:
353
+ *
354
+ * <ul>
355
+ * <li>If the rule set includes a default rule (and the number was passed in as a <tt>double</tt>),
356
+ * use the default rule.&nbsp; (If the number being formatted was passed in as a <tt>long</tt>,
357
+ * the default rule is ignored.)</li>
358
+ * <li>If the number is negative, use the negative-number rule.</li>
359
+ * <li>If the number has a fractional part and is greater than 1, use the improper fraction
360
+ * rule.</li>
361
+ * <li>If the number has a fractional part and is between 0 and 1, use the proper fraction
362
+ * rule.</li>
363
+ * <li>Binary-search the rule list for the rule with the highest base value less than or equal
364
+ * to the number. If that rule has two substitutions, its base value is not an even multiple
365
+ * of its divisor, and the number <em>is</em> an even multiple of the rule's divisor, use the
366
+ * rule that precedes it in the rule list. Otherwise, use the rule itself.</li>
367
+ * </ul>
368
+ *
369
+ * <p>If the rule set is a fraction rule set, do the following:
370
+ *
371
+ * <ul>
372
+ * <li>Ignore negative-number and fraction rules.</li>
373
+ * <li>For each rule in the list, multiply the number being formatted (which will always be
374
+ * between 0 and 1) by the rule's base value. Keep track of the distance between the result
375
+ * the nearest integer.</li>
376
+ * <li>Use the rule that produced the result closest to zero in the above calculation. In the
377
+ * event of a tie or a direct hit, use the first matching rule encountered. (The idea here is
378
+ * to try each rule's base value as a possible denominator of a fraction. Whichever
379
+ * denominator produces the fraction closest in value to the number being formatted wins.) If
380
+ * the rule following the matching rule has the same base value, use it if the numerator of
381
+ * the fraction is anything other than 1; if the numerator is 1, use the original matching
382
+ * rule. (This is to allow singular and plural forms of the rule text without a lot of extra
383
+ * hassle.)</li>
384
+ * </ul>
385
+ *
386
+ * <p>A rule's body consists of a string of characters terminated by a semicolon. The rule
387
+ * may include zero, one, or two <em>substitution tokens,</em> and a range of text in
388
+ * brackets. The brackets denote optional text (and may also include one or both
389
+ * substitutions). The exact meanings of the substitution tokens, and under what conditions
390
+ * optional text is omitted, depend on the syntax of the substitution token and the context.
391
+ * The rest of the text in a rule body is literal text that is output when the rule matches
392
+ * the number being formatted.</p>
393
+ *
394
+ * <p>A substitution token begins and ends with a <em>token character.</em> The token
395
+ * character and the context together specify a mathematical operation to be performed on the
396
+ * number being formatted. An optional <em>substitution descriptor </em>specifies how the
397
+ * value resulting from that operation is used to fill in the substitution. The position of
398
+ * the substitution token in the rule body specifies the location of the resultant text in
399
+ * the original rule text.</p>
400
+ *
401
+ * <p>The meanings of the substitution token characters are as follows:</p>
402
+ *
403
+ * <table border="0" width="100%">
404
+ * <tr>
405
+ * <td>&gt;&gt;</td>
406
+ * <td>in normal rule</td>
407
+ * <td>Divide the number by the rule's divisor and format the remainder</td>
408
+ * </tr>
409
+ * <tr>
410
+ * <td></td>
411
+ * <td>in negative-number rule</td>
412
+ * <td>Find the absolute value of the number and format the result</td>
413
+ * </tr>
414
+ * <tr>
415
+ * <td></td>
416
+ * <td>in fraction or default rule</td>
417
+ * <td>Isolate the number's fractional part and format it.</td>
418
+ * </tr>
419
+ * <tr>
420
+ * <td></td>
421
+ * <td>in rule in fraction rule set</td>
422
+ * <td>Not allowed.</td>
423
+ * </tr>
424
+ * <tr>
425
+ * <td>&gt;&gt;&gt;</td>
426
+ * <td>in normal rule</td>
427
+ * <td>Divide the number by the rule's divisor and format the remainder,
428
+ * but bypass the normal rule-selection process and just use the
429
+ * rule that precedes this one in this rule list.</td>
430
+ * </tr>
431
+ * <tr>
432
+ * <td></td>
433
+ * <td>in all other rules</td>
434
+ * <td>Not allowed.</td>
435
+ * </tr>
436
+ * <tr>
437
+ * <td>&lt;&lt;</td>
438
+ * <td>in normal rule</td>
439
+ * <td>Divide the number by the rule's divisor, perform floor() on the quotient,
440
+ * and format the resulting value.<br>
441
+ * If there is a DecimalFormat pattern between the &lt; characters and the
442
+ * rule does NOT also contain a &gt;&gt; substitution, we DON'T perform
443
+ * floor() on the quotient-- the quotient is passed through to the DecimalFormat
444
+ * intact. That is, for the value 1,900:<br>
445
+ * - "1/1000: &lt;&lt; thousand;" will produce "one thousand"<br>
446
+ * - "1/1000: &lt;0&lt; thousand;" will produce "2 thousand" (NOT "1 thousand")<br>
447
+ * - "1/1000: &lt;0&lt; seconds &gt;0&gt; milliseconds;" will produce "1 second 900 milliseconds"
448
+ * </td>
449
+ * </tr>
450
+ * <tr>
451
+ * <td></td>
452
+ * <td>in negative-number rule</td>
453
+ * <td>Not allowed.</td>
454
+ * </tr>
455
+ * <tr>
456
+ * <td></td>
457
+ * <td>in fraction or default rule</td>
458
+ * <td>Isolate the number's integral part and format it.</td>
459
+ * </tr>
460
+ * <tr>
461
+ * <td></td>
462
+ * <td>in rule in fraction rule set</td>
463
+ * <td>Multiply the number by the rule's base value and format the result.</td>
464
+ * </tr>
465
+ * <tr>
466
+ * <td>==</td>
467
+ * <td>in all rule sets</td>
468
+ * <td>Format the number unchanged</td>
469
+ * </tr>
470
+ * <tr>
471
+ * <td>[]</td>
472
+ * <td>in normal rule</td>
473
+ * <td>Omit the optional text if the number is an even multiple of the rule's divisor</td>
474
+ * </tr>
475
+ * <tr>
476
+ * <td></td>
477
+ * <td>in negative-number rule</td>
478
+ * <td>Not allowed.</td>
479
+ * </tr>
480
+ * <tr>
481
+ * <td></td>
482
+ * <td>in improper-fraction rule</td>
483
+ * <td>Omit the optional text if the number is between 0 and 1 (same as specifying both an
484
+ * x.x rule and a 0.x rule)</td>
485
+ * </tr>
486
+ * <tr>
487
+ * <td></td>
488
+ * <td>in default rule</td>
489
+ * <td>Omit the optional text if the number is an integer (same as specifying both an x.x
490
+ * rule and an x.0 rule)</td>
491
+ * </tr>
492
+ * <tr>
493
+ * <td></td>
494
+ * <td>in proper-fraction rule</td>
495
+ * <td>Not allowed.</td>
496
+ * </tr>
497
+ * <tr>
498
+ * <td></td>
499
+ * <td>in rule in fraction rule set</td>
500
+ * <td>Omit the optional text if multiplying the number by the rule's base value yields 1.</td>
501
+ * </tr>
502
+ * <tr>
503
+ * <td width="37">$(cardinal,<i>plural syntax</i>)$</td>
504
+ * <td width="23"></td>
505
+ * <td width="165" valign="top">in all rule sets</td>
506
+ * <td>This provides the ability to choose a word based on the number divided by the radix to the power of the
507
+ * exponent of the base value for the specified locale, which is normally equivalent to the &lt;&lt; value.
508
+ * This uses the cardinal plural rules from PluralFormat. All strings used in the plural format are treated
509
+ * as the same base value for parsing.</td>
510
+ * </tr>
511
+ * <tr>
512
+ * <td width="37">$(ordinal,<i>plural syntax</i>)$</td>
513
+ * <td width="23"></td>
514
+ * <td width="165" valign="top">in all rule sets</td>
515
+ * <td>This provides the ability to choose a word based on the number divided by the radix to the power of the
516
+ * exponent of the base value for the specified locale, which is normally equivalent to the &lt;&lt; value.
517
+ * This uses the ordinal plural rules from PluralFormat. All strings used in the plural format are treated
518
+ * as the same base value for parsing.</td>
519
+ * </tr>
520
+ * </table>
521
+ *
522
+ * <p>The substitution descriptor (i.e., the text between the token characters) may take one
523
+ * of three forms:</p>
524
+ *
525
+ * <table border="0" width="100%">
526
+ * <tr>
527
+ * <td>a rule set name</td>
528
+ * <td>Perform the mathematical operation on the number, and format the result using the
529
+ * named rule set.</td>
530
+ * </tr>
531
+ * <tr>
532
+ * <td>a DecimalFormat pattern</td>
533
+ * <td>Perform the mathematical operation on the number, and format the result using a
534
+ * DecimalFormat with the specified pattern.&nbsp; The pattern must begin with 0 or #.</td>
535
+ * </tr>
536
+ * <tr>
537
+ * <td>nothing</td>
538
+ * <td>Perform the mathematical operation on the number, and format the result using the rule
539
+ * set containing the current rule, except:
540
+ * <ul>
541
+ * <li>You can't have an empty substitution descriptor with a == substitution.</li>
542
+ * <li>If you omit the substitution descriptor in a &gt;&gt; substitution in a fraction rule,
543
+ * format the result one digit at a time using the rule set containing the current rule.</li>
544
+ * <li>If you omit the substitution descriptor in a &lt;&lt; substitution in a rule in a
545
+ * fraction rule set, format the result using the default rule set for this formatter.</li>
546
+ * </ul>
547
+ * </td>
548
+ * </tr>
549
+ * </table>
550
+ *
551
+ * <p>Whitespace is ignored between a rule set name and a rule set body, between a rule
552
+ * descriptor and a rule body, or between rules. If a rule body begins with an apostrophe,
553
+ * the apostrophe is ignored, but all text after it becomes significant (this is how you can
554
+ * have a rule's rule text begin with whitespace). There is no escape function: the semicolon
555
+ * is not allowed in rule set names or in rule text, and the colon is not allowed in rule set
556
+ * names. The characters beginning a substitution token are always treated as the beginning
557
+ * of a substitution token.</p>
558
+ *
559
+ * <p>See the resource data and the demo program for annotated examples of real rule sets
560
+ * using these features.</p>
561
+ *
562
+ * <p><em>User subclasses are not supported.</em> While clients may write
563
+ * subclasses, such code will not necessarily work and will not be
564
+ * guaranteed to work stably from release to release.
565
+ *
566
+ * <p><b>Localizations</b></p>
567
+ * <p>Constructors are available that allow the specification of localizations for the
568
+ * public rule sets (and also allow more control over what public rule sets are available).
569
+ * Localization data is represented as a textual description. The description represents
570
+ * an array of arrays of string. The first element is an array of the public rule set names,
571
+ * each of these must be one of the public rule set names that appear in the rules. Only
572
+ * names in this array will be treated as public rule set names by the API. Each subsequent
573
+ * element is an array of localizations of these names. The first element of one of these
574
+ * subarrays is the locale name, and the remaining elements are localizations of the
575
+ * public rule set names, in the same order as they were listed in the first array.</p>
576
+ * <p>In the syntax, angle brackets '<', '>' are used to delimit the arrays, and comma ',' is used
577
+ * to separate elements of an array. Whitespace is ignored, unless quoted.</p>
578
+ * <p>For example:<pre>
579
+ * < < %foo, %bar, %baz >,
580
+ * < en, Foo, Bar, Baz >,
581
+ * < fr, 'le Foo', 'le Bar', 'le Baz' >
582
+ * < zh, \\u7532, \\u4e59, \\u4e19 > >
583
+ * </pre></p>
584
+ * @author Richard Gillam
585
+ * @see NumberFormat
586
+ * @see DecimalFormat
587
+ * @see PluralFormat
588
+ * @see PluralRules
589
+ * @stable ICU 2.0
590
+ */
591
+ class U_I18N_API RuleBasedNumberFormat : public NumberFormat {
592
+ public:
593
+
594
+ //-----------------------------------------------------------------------
595
+ // constructors
596
+ //-----------------------------------------------------------------------
597
+
598
+ /**
599
+ * Creates a RuleBasedNumberFormat that behaves according to the description
600
+ * passed in. The formatter uses the default locale.
601
+ * @param rules A description of the formatter's desired behavior.
602
+ * See the class documentation for a complete explanation of the description
603
+ * syntax.
604
+ * @param perror The parse error if an error was encountered.
605
+ * @param status The status indicating whether the constructor succeeded.
606
+ * @stable ICU 3.2
607
+ */
608
+ RuleBasedNumberFormat(const UnicodeString& rules, UParseError& perror, UErrorCode& status);
609
+
610
+ /**
611
+ * Creates a RuleBasedNumberFormat that behaves according to the description
612
+ * passed in. The formatter uses the default locale.
613
+ * <p>
614
+ * The localizations data provides information about the public
615
+ * rule sets and their localized display names for different
616
+ * locales. The first element in the list is an array of the names
617
+ * of the public rule sets. The first element in this array is
618
+ * the initial default ruleset. The remaining elements in the
619
+ * list are arrays of localizations of the names of the public
620
+ * rule sets. Each of these is one longer than the initial array,
621
+ * with the first String being the ULocale ID, and the remaining
622
+ * Strings being the localizations of the rule set names, in the
623
+ * same order as the initial array. Arrays are nullptr-terminated.
624
+ * @param rules A description of the formatter's desired behavior.
625
+ * See the class documentation for a complete explanation of the description
626
+ * syntax.
627
+ * @param localizations the localization information.
628
+ * names in the description. These will be copied by the constructor.
629
+ * @param perror The parse error if an error was encountered.
630
+ * @param status The status indicating whether the constructor succeeded.
631
+ * @stable ICU 3.2
632
+ */
633
+ RuleBasedNumberFormat(const UnicodeString& rules, const UnicodeString& localizations,
634
+ UParseError& perror, UErrorCode& status);
635
+
636
+ /**
637
+ * Creates a RuleBasedNumberFormat that behaves according to the rules
638
+ * passed in. The formatter uses the specified locale to determine the
639
+ * characters to use when formatting numerals, and to define equivalences
640
+ * for lenient parsing.
641
+ * @param rules The formatter rules.
642
+ * See the class documentation for a complete explanation of the rule
643
+ * syntax.
644
+ * @param locale A locale that governs which characters are used for
645
+ * formatting values in numerals and which characters are equivalent in
646
+ * lenient parsing.
647
+ * @param perror The parse error if an error was encountered.
648
+ * @param status The status indicating whether the constructor succeeded.
649
+ * @stable ICU 2.0
650
+ */
651
+ RuleBasedNumberFormat(const UnicodeString& rules, const Locale& locale,
652
+ UParseError& perror, UErrorCode& status);
653
+
654
+ /**
655
+ * Creates a RuleBasedNumberFormat that behaves according to the description
656
+ * passed in. The formatter uses the default locale.
657
+ * <p>
658
+ * The localizations data provides information about the public
659
+ * rule sets and their localized display names for different
660
+ * locales. The first element in the list is an array of the names
661
+ * of the public rule sets. The first element in this array is
662
+ * the initial default ruleset. The remaining elements in the
663
+ * list are arrays of localizations of the names of the public
664
+ * rule sets. Each of these is one longer than the initial array,
665
+ * with the first String being the ULocale ID, and the remaining
666
+ * Strings being the localizations of the rule set names, in the
667
+ * same order as the initial array. Arrays are nullptr-terminated.
668
+ * @param rules A description of the formatter's desired behavior.
669
+ * See the class documentation for a complete explanation of the description
670
+ * syntax.
671
+ * @param localizations a list of localizations for the rule set
672
+ * names in the description. These will be copied by the constructor.
673
+ * @param locale A locale that governs which characters are used for
674
+ * formatting values in numerals and which characters are equivalent in
675
+ * lenient parsing.
676
+ * @param perror The parse error if an error was encountered.
677
+ * @param status The status indicating whether the constructor succeeded.
678
+ * @stable ICU 3.2
679
+ */
680
+ RuleBasedNumberFormat(const UnicodeString& rules, const UnicodeString& localizations,
681
+ const Locale& locale, UParseError& perror, UErrorCode& status);
682
+
683
+ /**
684
+ * Creates a RuleBasedNumberFormat from a predefined ruleset. The selector
685
+ * code chose among three possible predefined formats: spellout, ordinal,
686
+ * and duration.
687
+ * @param tag A selector code specifying which kind of formatter to create for that
688
+ * locale. There are four legal values: URBNF_SPELLOUT, which creates a formatter that
689
+ * spells out a value in words in the desired language, URBNF_ORDINAL, which attaches
690
+ * an ordinal suffix from the desired language to the end of a number (e.g. "123rd"),
691
+ * URBNF_DURATION, which formats a duration in seconds as hours, minutes, and seconds always rounding down,
692
+ * and URBNF_NUMBERING_SYSTEM, which is used to invoke rules for alternate numbering
693
+ * systems such as the Hebrew numbering system, or for Roman Numerals, etc.
694
+ * NOTE: If you use URBNF_NUMBERING_SYSTEM, you must also call setDefaultRuleSet() to
695
+ * specify the exact numbering system you want to use. If you want the default numbering system
696
+ * for the locale, call NumberFormat::createInstance() instead of creating a RuleBasedNumberFormat directly.
697
+ * @param locale The locale for the formatter.
698
+ * @param status The status indicating whether the constructor succeeded.
699
+ * @stable ICU 2.0
700
+ */
701
+ RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale& locale, UErrorCode& status);
702
+
703
+ //-----------------------------------------------------------------------
704
+ // boilerplate
705
+ //-----------------------------------------------------------------------
706
+
707
+ /**
708
+ * Copy constructor
709
+ * @param rhs the object to be copied from.
710
+ * @stable ICU 2.6
711
+ */
712
+ RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs);
713
+
714
+ /**
715
+ * Assignment operator
716
+ * @param rhs the object to be copied from.
717
+ * @stable ICU 2.6
718
+ */
719
+ RuleBasedNumberFormat& operator=(const RuleBasedNumberFormat& rhs);
720
+
721
+ /**
722
+ * Release memory allocated for a RuleBasedNumberFormat when you are finished with it.
723
+ * @stable ICU 2.6
724
+ */
725
+ virtual ~RuleBasedNumberFormat();
726
+
727
+ /**
728
+ * Clone this object polymorphically. The caller is responsible
729
+ * for deleting the result when done.
730
+ * @return A copy of the object.
731
+ * @stable ICU 2.6
732
+ */
733
+ virtual RuleBasedNumberFormat* clone() const override;
734
+
735
+ /**
736
+ * Return true if the given Format objects are semantically equal.
737
+ * Objects of different subclasses are considered unequal.
738
+ * @param other the object to be compared with.
739
+ * @return true if the given Format objects are semantically equal.
740
+ * @stable ICU 2.6
741
+ */
742
+ virtual bool operator==(const Format& other) const override;
743
+
744
+ //-----------------------------------------------------------------------
745
+ // public API functions
746
+ //-----------------------------------------------------------------------
747
+
748
+ /**
749
+ * return the rules that were provided to the RuleBasedNumberFormat.
750
+ * @return the result String that was passed in
751
+ * @stable ICU 2.0
752
+ */
753
+ virtual UnicodeString getRules() const;
754
+
755
+ /**
756
+ * Return the number of public rule set names.
757
+ * @return the number of public rule set names.
758
+ * @stable ICU 2.0
759
+ */
760
+ virtual int32_t getNumberOfRuleSetNames() const;
761
+
762
+ /**
763
+ * Return the name of the index'th public ruleSet. If index is not valid,
764
+ * the function returns null.
765
+ * @param index the index of the ruleset
766
+ * @return the name of the index'th public ruleSet.
767
+ * @stable ICU 2.0
768
+ */
769
+ virtual UnicodeString getRuleSetName(int32_t index) const;
770
+
771
+ /**
772
+ * Return the number of locales for which we have localized rule set display names.
773
+ * @return the number of locales for which we have localized rule set display names.
774
+ * @stable ICU 3.2
775
+ */
776
+ virtual int32_t getNumberOfRuleSetDisplayNameLocales() const;
777
+
778
+ /**
779
+ * Return the index'th display name locale.
780
+ * @param index the index of the locale
781
+ * @param status set to a failure code when this function fails
782
+ * @return the locale
783
+ * @see #getNumberOfRuleSetDisplayNameLocales
784
+ * @stable ICU 3.2
785
+ */
786
+ virtual Locale getRuleSetDisplayNameLocale(int32_t index, UErrorCode& status) const;
787
+
788
+ /**
789
+ * Return the rule set display names for the provided locale. These are in the same order
790
+ * as those returned by getRuleSetName. The locale is matched against the locales for
791
+ * which there is display name data, using normal fallback rules. If no locale matches,
792
+ * the default display names are returned. (These are the internal rule set names minus
793
+ * the leading '%'.)
794
+ * @param index the index of the rule set
795
+ * @param locale the locale (returned by getRuleSetDisplayNameLocales) for which the localized
796
+ * display name is desired
797
+ * @return the display name for the given index, which might be bogus if there is an error
798
+ * @see #getRuleSetName
799
+ * @stable ICU 3.2
800
+ */
801
+ virtual UnicodeString getRuleSetDisplayName(int32_t index,
802
+ const Locale& locale = Locale::getDefault());
803
+
804
+ /**
805
+ * Return the rule set display name for the provided rule set and locale.
806
+ * The locale is matched against the locales for which there is display name data, using
807
+ * normal fallback rules. If no locale matches, the default display name is returned.
808
+ * @return the display name for the rule set
809
+ * @stable ICU 3.2
810
+ * @see #getRuleSetDisplayName
811
+ */
812
+ virtual UnicodeString getRuleSetDisplayName(const UnicodeString& ruleSetName,
813
+ const Locale& locale = Locale::getDefault());
814
+
815
+
816
+ using NumberFormat::format;
817
+
818
+ /**
819
+ * Formats the specified 32-bit number using the default ruleset.
820
+ * @param number The number to format.
821
+ * @param toAppendTo the string that will hold the (appended) result
822
+ * @param pos the fieldposition
823
+ * @return A textual representation of the number.
824
+ * @stable ICU 2.0
825
+ */
826
+ virtual UnicodeString& format(int32_t number,
827
+ UnicodeString& toAppendTo,
828
+ FieldPosition& pos) const override;
829
+
830
+ /**
831
+ * Formats the specified 64-bit number using the default ruleset.
832
+ * @param number The number to format.
833
+ * @param toAppendTo the string that will hold the (appended) result
834
+ * @param pos the fieldposition
835
+ * @return A textual representation of the number.
836
+ * @stable ICU 2.1
837
+ */
838
+ virtual UnicodeString& format(int64_t number,
839
+ UnicodeString& toAppendTo,
840
+ FieldPosition& pos) const override;
841
+ /**
842
+ * Formats the specified number using the default ruleset.
843
+ * @param number The number to format.
844
+ * @param toAppendTo the string that will hold the (appended) result
845
+ * @param pos the fieldposition
846
+ * @return A textual representation of the number.
847
+ * @stable ICU 2.0
848
+ */
849
+ virtual UnicodeString& format(double number,
850
+ UnicodeString& toAppendTo,
851
+ FieldPosition& pos) const override;
852
+
853
+ /**
854
+ * Formats the specified number using the named ruleset.
855
+ * @param number The number to format.
856
+ * @param ruleSetName The name of the rule set to format the number with.
857
+ * This must be the name of a valid public rule set for this formatter.
858
+ * @param toAppendTo the string that will hold the (appended) result
859
+ * @param pos the fieldposition
860
+ * @param status the status
861
+ * @return A textual representation of the number.
862
+ * @stable ICU 2.0
863
+ */
864
+ virtual UnicodeString& format(int32_t number,
865
+ const UnicodeString& ruleSetName,
866
+ UnicodeString& toAppendTo,
867
+ FieldPosition& pos,
868
+ UErrorCode& status) const;
869
+ /**
870
+ * Formats the specified 64-bit number using the named ruleset.
871
+ * @param number The number to format.
872
+ * @param ruleSetName The name of the rule set to format the number with.
873
+ * This must be the name of a valid public rule set for this formatter.
874
+ * @param toAppendTo the string that will hold the (appended) result
875
+ * @param pos the fieldposition
876
+ * @param status the status
877
+ * @return A textual representation of the number.
878
+ * @stable ICU 2.1
879
+ */
880
+ virtual UnicodeString& format(int64_t number,
881
+ const UnicodeString& ruleSetName,
882
+ UnicodeString& toAppendTo,
883
+ FieldPosition& pos,
884
+ UErrorCode& status) const;
885
+ /**
886
+ * Formats the specified number using the named ruleset.
887
+ * @param number The number to format.
888
+ * @param ruleSetName The name of the rule set to format the number with.
889
+ * This must be the name of a valid public rule set for this formatter.
890
+ * @param toAppendTo the string that will hold the (appended) result
891
+ * @param pos the fieldposition
892
+ * @param status the status
893
+ * @return A textual representation of the number.
894
+ * @stable ICU 2.0
895
+ */
896
+ virtual UnicodeString& format(double number,
897
+ const UnicodeString& ruleSetName,
898
+ UnicodeString& toAppendTo,
899
+ FieldPosition& pos,
900
+ UErrorCode& status) const;
901
+
902
+ protected:
903
+ /**
904
+ * Format a decimal number.
905
+ * The number is a DigitList wrapper onto a floating point decimal number.
906
+ * The default implementation in NumberFormat converts the decimal number
907
+ * to a double and formats that. Subclasses of NumberFormat that want
908
+ * to specifically handle big decimal numbers must override this method.
909
+ * class DecimalFormat does so.
910
+ *
911
+ * @param number The number, a DigitList format Decimal Floating Point.
912
+ * @param appendTo Output parameter to receive result.
913
+ * Result is appended to existing contents.
914
+ * @param pos On input: an alignment field, if desired.
915
+ * On output: the offsets of the alignment field.
916
+ * @param status Output param filled with success/failure status.
917
+ * @return Reference to 'appendTo' parameter.
918
+ * @internal
919
+ */
920
+ virtual UnicodeString& format(const number::impl::DecimalQuantity &number,
921
+ UnicodeString& appendTo,
922
+ FieldPosition& pos,
923
+ UErrorCode& status) const override;
924
+ public:
925
+
926
+ using NumberFormat::parse;
927
+
928
+ /**
929
+ * Parses the specified string, beginning at the specified position, according
930
+ * to this formatter's rules. This will match the string against all of the
931
+ * formatter's public rule sets and return the value corresponding to the longest
932
+ * parseable substring. This function's behavior is affected by the lenient
933
+ * parse mode.
934
+ * @param text The string to parse
935
+ * @param result the result of the parse, either a double or a long.
936
+ * @param parsePosition On entry, contains the position of the first character
937
+ * in "text" to examine. On exit, has been updated to contain the position
938
+ * of the first character in "text" that wasn't consumed by the parse.
939
+ * @see #setLenient
940
+ * @stable ICU 2.0
941
+ */
942
+ virtual void parse(const UnicodeString& text,
943
+ Formattable& result,
944
+ ParsePosition& parsePosition) const override;
945
+
946
+ #if !UCONFIG_NO_COLLATION
947
+
948
+ /**
949
+ * Turns lenient parse mode on and off.
950
+ *
951
+ * When in lenient parse mode, the formatter uses a Collator for parsing the text.
952
+ * Only primary differences are treated as significant. This means that case
953
+ * differences, accent differences, alternate spellings of the same letter
954
+ * (e.g., ae and a-umlaut in German), ignorable characters, etc. are ignored in
955
+ * matching the text. In many cases, numerals will be accepted in place of words
956
+ * or phrases as well.
957
+ *
958
+ * For example, all of the following will correctly parse as 255 in English in
959
+ * lenient-parse mode:
960
+ * <br>"two hundred fifty-five"
961
+ * <br>"two hundred fifty five"
962
+ * <br>"TWO HUNDRED FIFTY-FIVE"
963
+ * <br>"twohundredfiftyfive"
964
+ * <br>"2 hundred fifty-5"
965
+ *
966
+ * The Collator used is determined by the locale that was
967
+ * passed to this object on construction. The description passed to this object
968
+ * on construction may supply additional collation rules that are appended to the
969
+ * end of the default collator for the locale, enabling additional equivalences
970
+ * (such as adding more ignorable characters or permitting spelled-out version of
971
+ * symbols; see the demo program for examples).
972
+ *
973
+ * It's important to emphasize that even strict parsing is relatively lenient: it
974
+ * will accept some text that it won't produce as output. In English, for example,
975
+ * it will correctly parse "two hundred zero" and "fifteen hundred".
976
+ *
977
+ * @param enabled If true, turns lenient-parse mode on; if false, turns it off.
978
+ * @see RuleBasedCollator
979
+ * @stable ICU 2.0
980
+ */
981
+ virtual void setLenient(UBool enabled) override;
982
+
983
+ /**
984
+ * Returns true if lenient-parse mode is turned on. Lenient parsing is off
985
+ * by default.
986
+ * @return true if lenient-parse mode is turned on.
987
+ * @see #setLenient
988
+ * @stable ICU 2.0
989
+ */
990
+ virtual inline UBool isLenient() const override;
991
+
992
+ #endif
993
+
994
+ /**
995
+ * Override the default rule set to use. If ruleSetName is null, reset
996
+ * to the initial default rule set. If the rule set is not a public rule set name,
997
+ * U_ILLEGAL_ARGUMENT_ERROR is returned in status.
998
+ * @param ruleSetName the name of the rule set, or null to reset the initial default.
999
+ * @param status set to failure code when a problem occurs.
1000
+ * @stable ICU 2.6
1001
+ */
1002
+ virtual void setDefaultRuleSet(const UnicodeString& ruleSetName, UErrorCode& status);
1003
+
1004
+ /**
1005
+ * Return the name of the current default rule set. If the current rule set is
1006
+ * not public, returns a bogus (and empty) UnicodeString.
1007
+ * @return the name of the current default rule set
1008
+ * @stable ICU 3.0
1009
+ */
1010
+ virtual UnicodeString getDefaultRuleSetName() const;
1011
+
1012
+ /**
1013
+ * Set a particular UDisplayContext value in the formatter, such as
1014
+ * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note: For getContext, see
1015
+ * NumberFormat.
1016
+ * @param value The UDisplayContext value to set.
1017
+ * @param status Input/output status. If at entry this indicates a failure
1018
+ * status, the function will do nothing; otherwise this will be
1019
+ * updated with any new status from the function.
1020
+ * @stable ICU 53
1021
+ */
1022
+ virtual void setContext(UDisplayContext value, UErrorCode& status) override;
1023
+
1024
+ /**
1025
+ * Get the rounding mode.
1026
+ * @return A rounding mode
1027
+ * @stable ICU 60
1028
+ */
1029
+ virtual ERoundingMode getRoundingMode() const override;
1030
+
1031
+ /**
1032
+ * Set the rounding mode.
1033
+ * @param roundingMode A rounding mode
1034
+ * @stable ICU 60
1035
+ */
1036
+ virtual void setRoundingMode(ERoundingMode roundingMode) override;
1037
+
1038
+ public:
1039
+ /**
1040
+ * ICU "poor man's RTTI", returns a UClassID for this class.
1041
+ *
1042
+ * @stable ICU 2.8
1043
+ */
1044
+ static UClassID U_EXPORT2 getStaticClassID();
1045
+
1046
+ /**
1047
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
1048
+ *
1049
+ * @stable ICU 2.8
1050
+ */
1051
+ virtual UClassID getDynamicClassID() const override;
1052
+
1053
+ /**
1054
+ * Sets the decimal format symbols, which is generally not changed
1055
+ * by the programmer or user. The formatter takes ownership of
1056
+ * symbolsToAdopt; the client must not delete it.
1057
+ *
1058
+ * @param symbolsToAdopt DecimalFormatSymbols to be adopted.
1059
+ * @stable ICU 49
1060
+ */
1061
+ virtual void adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsToAdopt);
1062
+
1063
+ /**
1064
+ * Sets the decimal format symbols, which is generally not changed
1065
+ * by the programmer or user. A clone of the symbols is created and
1066
+ * the symbols is _not_ adopted; the client is still responsible for
1067
+ * deleting it.
1068
+ *
1069
+ * @param symbols DecimalFormatSymbols.
1070
+ * @stable ICU 49
1071
+ */
1072
+ virtual void setDecimalFormatSymbols(const DecimalFormatSymbols& symbols);
1073
+
1074
+ private:
1075
+ RuleBasedNumberFormat() = delete; // default constructor not implemented
1076
+
1077
+ // this will ref the localizations if they are not nullptr
1078
+ // caller must deref to get adoption
1079
+ RuleBasedNumberFormat(const UnicodeString& description, LocalizationInfo* localizations,
1080
+ const Locale& locale, UParseError& perror, UErrorCode& status);
1081
+
1082
+ void init(const UnicodeString& rules, LocalizationInfo* localizations, UParseError& perror, UErrorCode& status);
1083
+ void initCapitalizationContextInfo(const Locale& thelocale);
1084
+ void dispose();
1085
+ void stripWhitespace(UnicodeString& src);
1086
+ void initDefaultRuleSet();
1087
+ NFRuleSet* findRuleSet(const UnicodeString& name, UErrorCode& status) const;
1088
+
1089
+ /* friend access */
1090
+ friend class NFSubstitution;
1091
+ friend class NFRule;
1092
+ friend class NFRuleSet;
1093
+ friend class FractionalPartSubstitution;
1094
+
1095
+ inline NFRuleSet * getDefaultRuleSet() const;
1096
+ const RuleBasedCollator * getCollator() const;
1097
+ DecimalFormatSymbols * initializeDecimalFormatSymbols(UErrorCode &status);
1098
+ const DecimalFormatSymbols * getDecimalFormatSymbols() const;
1099
+ NFRule * initializeDefaultInfinityRule(UErrorCode &status);
1100
+ const NFRule * getDefaultInfinityRule() const;
1101
+ NFRule * initializeDefaultNaNRule(UErrorCode &status);
1102
+ const NFRule * getDefaultNaNRule() const;
1103
+ PluralFormat *createPluralFormat(UPluralType pluralType, const UnicodeString &pattern, UErrorCode& status) const;
1104
+ UnicodeString& adjustForCapitalizationContext(int32_t startPos, UnicodeString& currentResult, UErrorCode& status) const;
1105
+ UnicodeString& format(int64_t number, NFRuleSet *ruleSet, UnicodeString& toAppendTo, UErrorCode& status) const;
1106
+ void format(double number, NFRuleSet& rs, UnicodeString& toAppendTo, UErrorCode& status) const;
1107
+
1108
+ private:
1109
+ NFRuleSet **fRuleSets;
1110
+ UnicodeString* ruleSetDescriptions;
1111
+ int32_t numRuleSets;
1112
+ NFRuleSet *defaultRuleSet;
1113
+ Locale locale;
1114
+ RuleBasedCollator* collator;
1115
+ DecimalFormatSymbols* decimalFormatSymbols;
1116
+ NFRule *defaultInfinityRule;
1117
+ NFRule *defaultNaNRule;
1118
+ ERoundingMode fRoundingMode;
1119
+ UBool lenient;
1120
+ UnicodeString* lenientParseRules;
1121
+ LocalizationInfo* localizations;
1122
+ UnicodeString originalDescription;
1123
+ UBool capitalizationInfoSet;
1124
+ UBool capitalizationForUIListMenu;
1125
+ UBool capitalizationForStandAlone;
1126
+ BreakIterator* capitalizationBrkIter;
1127
+ };
1128
+
1129
+ // ---------------
1130
+
1131
+ #if !UCONFIG_NO_COLLATION
1132
+
1133
+ inline UBool
1134
+ RuleBasedNumberFormat::isLenient() const {
1135
+ return lenient;
1136
+ }
1137
+
1138
+ #endif
1139
+
1140
+ inline NFRuleSet*
1141
+ RuleBasedNumberFormat::getDefaultRuleSet() const {
1142
+ return defaultRuleSet;
1143
+ }
1144
+
1145
+ U_NAMESPACE_END
1146
+
1147
+ /* U_HAVE_RBNF */
1148
+ #endif
1149
+
1150
+ #endif /* U_SHOW_CPLUSPLUS_API */
1151
+
1152
+ /* RBNF_H */
1153
+ #endif