webruby 0.1.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 (1364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/webruby +36 -0
  3. data/driver/driver.c +50 -0
  4. data/driver/main.c +40 -0
  5. data/lib/webruby/app.rb +13 -0
  6. data/lib/webruby/config.rb +61 -0
  7. data/lib/webruby/environment.rb +32 -0
  8. data/lib/webruby/rake/files.rake +66 -0
  9. data/lib/webruby/rake/general.rake +22 -0
  10. data/lib/webruby/rake/mruby.rake +44 -0
  11. data/lib/webruby/utility.rb +132 -0
  12. data/lib/webruby.rb +10 -0
  13. data/modules/emscripten/AUTHORS +89 -0
  14. data/modules/emscripten/LICENSE +68 -0
  15. data/modules/emscripten/README.markdown +14 -0
  16. data/modules/emscripten/cmake/Platform/Emscripten.cmake +61 -0
  17. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +24 -0
  18. data/modules/emscripten/em++ +12 -0
  19. data/modules/emscripten/em++.bat +2 -0
  20. data/modules/emscripten/em-config +24 -0
  21. data/modules/emscripten/em-config.bat +2 -0
  22. data/modules/emscripten/emar +24 -0
  23. data/modules/emscripten/emar.bat +2 -0
  24. data/modules/emscripten/emcc +1744 -0
  25. data/modules/emscripten/emcc.bat +2 -0
  26. data/modules/emscripten/emcc.py +5 -0
  27. data/modules/emscripten/emconfigure +27 -0
  28. data/modules/emscripten/emconfigure.bat +2 -0
  29. data/modules/emscripten/emlibtool +11 -0
  30. data/modules/emscripten/emlibtool.bat +2 -0
  31. data/modules/emscripten/emlink.py +293 -0
  32. data/modules/emscripten/emmake +29 -0
  33. data/modules/emscripten/emmake.bat +2 -0
  34. data/modules/emscripten/emranlib +9 -0
  35. data/modules/emscripten/emranlib.bat +2 -0
  36. data/modules/emscripten/emscons +20 -0
  37. data/modules/emscripten/emscripten.py +835 -0
  38. data/modules/emscripten/patches/README +4 -0
  39. data/modules/emscripten/patches/series +2 -0
  40. data/modules/emscripten/scons-tools/closure.py +28 -0
  41. data/modules/emscripten/scons-tools/emscripten.py +359 -0
  42. data/modules/emscripten/scons-tools/llvm.py +33 -0
  43. data/modules/emscripten/src/analyzer.js +1695 -0
  44. data/modules/emscripten/src/compiler.html +48 -0
  45. data/modules/emscripten/src/compiler.js +298 -0
  46. data/modules/emscripten/src/corruptionCheck.js +98 -0
  47. data/modules/emscripten/src/determinstic.js +20 -0
  48. data/modules/emscripten/src/embind/embind.js +1677 -0
  49. data/modules/emscripten/src/embind/emval.js +283 -0
  50. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +97 -0
  51. data/modules/emscripten/src/experimental/batching.diff +44 -0
  52. data/modules/emscripten/src/experimental/functypeopt.diff +113 -0
  53. data/modules/emscripten/src/experimental/multiple_heaps.diff +175 -0
  54. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +197 -0
  55. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +124 -0
  56. data/modules/emscripten/src/experimental/remove__label__s.diff +140 -0
  57. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +99 -0
  58. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +57 -0
  59. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +336 -0
  60. data/modules/emscripten/src/experimental/stringCache.diff +147 -0
  61. data/modules/emscripten/src/fastLong.js +299 -0
  62. data/modules/emscripten/src/framework.js +257 -0
  63. data/modules/emscripten/src/gl-matrix.js +1952 -0
  64. data/modules/emscripten/src/headless.js +904 -0
  65. data/modules/emscripten/src/intertyper.js +1050 -0
  66. data/modules/emscripten/src/jsifier.js +1827 -0
  67. data/modules/emscripten/src/library.js +8270 -0
  68. data/modules/emscripten/src/library_browser.js +911 -0
  69. data/modules/emscripten/src/library_egl.js +491 -0
  70. data/modules/emscripten/src/library_gc.js +236 -0
  71. data/modules/emscripten/src/library_gl.js +4452 -0
  72. data/modules/emscripten/src/library_glfw.js +576 -0
  73. data/modules/emscripten/src/library_glut.js +449 -0
  74. data/modules/emscripten/src/library_jansson.js +320 -0
  75. data/modules/emscripten/src/library_openal.js +602 -0
  76. data/modules/emscripten/src/library_sdl.js +2024 -0
  77. data/modules/emscripten/src/library_strtok_r.c +97 -0
  78. data/modules/emscripten/src/library_xlib.js +23 -0
  79. data/modules/emscripten/src/long.js +1609 -0
  80. data/modules/emscripten/src/modules.js +491 -0
  81. data/modules/emscripten/src/parseTools.js +2474 -0
  82. data/modules/emscripten/src/postamble.js +170 -0
  83. data/modules/emscripten/src/postamble_sharedlib.js +16 -0
  84. data/modules/emscripten/src/preamble.js +914 -0
  85. data/modules/emscripten/src/preamble_sharedlib.js +25 -0
  86. data/modules/emscripten/src/relooper/README.markdown +14 -0
  87. data/modules/emscripten/src/relooper/Relooper.cpp +1236 -0
  88. data/modules/emscripten/src/relooper/Relooper.h +250 -0
  89. data/modules/emscripten/src/relooper/doit.sh +70 -0
  90. data/modules/emscripten/src/relooper/emscripten/glue.js +57 -0
  91. data/modules/emscripten/src/relooper/emscripten/test.js +44 -0
  92. data/modules/emscripten/src/relooper/fuzzer.py +116 -0
  93. data/modules/emscripten/src/relooper/ministring.h +35 -0
  94. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  95. data/modules/emscripten/src/relooper/test.cpp +262 -0
  96. data/modules/emscripten/src/relooper/test.txt +155 -0
  97. data/modules/emscripten/src/relooper/test2.c +44 -0
  98. data/modules/emscripten/src/relooper/test2.txt +12 -0
  99. data/modules/emscripten/src/relooper/test3.c +42 -0
  100. data/modules/emscripten/src/relooper/test3.txt +27 -0
  101. data/modules/emscripten/src/relooper/test4.cpp +40 -0
  102. data/modules/emscripten/src/relooper/test4.txt +23 -0
  103. data/modules/emscripten/src/relooper/test5.cpp +40 -0
  104. data/modules/emscripten/src/relooper/test5.txt +32 -0
  105. data/modules/emscripten/src/relooper/test6.cpp +31 -0
  106. data/modules/emscripten/src/relooper/test6.txt +12 -0
  107. data/modules/emscripten/src/relooper/test_dead.cpp +28 -0
  108. data/modules/emscripten/src/relooper/test_dead.txt +9 -0
  109. data/modules/emscripten/src/relooper/test_debug.cpp +30 -0
  110. data/modules/emscripten/src/relooper/test_debug.txt +128 -0
  111. data/modules/emscripten/src/relooper/test_fuzz1.cpp +52 -0
  112. data/modules/emscripten/src/relooper/test_fuzz1.txt +32 -0
  113. data/modules/emscripten/src/relooper/test_fuzz2.cpp +34 -0
  114. data/modules/emscripten/src/relooper/test_fuzz2.txt +13 -0
  115. data/modules/emscripten/src/relooper/test_fuzz3.cpp +36 -0
  116. data/modules/emscripten/src/relooper/test_fuzz3.txt +9 -0
  117. data/modules/emscripten/src/relooper/test_fuzz4.cpp +38 -0
  118. data/modules/emscripten/src/relooper/test_fuzz4.txt +19 -0
  119. data/modules/emscripten/src/relooper/test_fuzz5.cpp +57 -0
  120. data/modules/emscripten/src/relooper/test_fuzz5.txt +52 -0
  121. data/modules/emscripten/src/relooper/test_fuzz6.cpp +322 -0
  122. data/modules/emscripten/src/relooper/test_fuzz6.txt +108 -0
  123. data/modules/emscripten/src/relooper/test_inf.cpp +813 -0
  124. data/modules/emscripten/src/relooper/test_inf.txt +385 -0
  125. data/modules/emscripten/src/relooper/testit.sh +62 -0
  126. data/modules/emscripten/src/relooper/updateit.sh +17 -0
  127. data/modules/emscripten/src/relooper.js +11516 -0
  128. data/modules/emscripten/src/relooper.js.raw.js +11511 -0
  129. data/modules/emscripten/src/runtime.js +546 -0
  130. data/modules/emscripten/src/settings.js +1284 -0
  131. data/modules/emscripten/src/shell.html +92 -0
  132. data/modules/emscripten/src/shell.js +153 -0
  133. data/modules/emscripten/src/shell_sharedlib.js +12 -0
  134. data/modules/emscripten/src/socket.io.js +3870 -0
  135. data/modules/emscripten/src/utility.js +379 -0
  136. data/modules/emscripten/src/wrtcp.js +821 -0
  137. data/modules/emscripten/system/include/AL/al.h +172 -0
  138. data/modules/emscripten/system/include/AL/alc.h +84 -0
  139. data/modules/emscripten/system/include/EGL/egl.h +329 -0
  140. data/modules/emscripten/system/include/EGL/eglext.h +398 -0
  141. data/modules/emscripten/system/include/EGL/eglplatform.h +141 -0
  142. data/modules/emscripten/system/include/GL/freeglut_std.h +628 -0
  143. data/modules/emscripten/system/include/GL/gl.h +2241 -0
  144. data/modules/emscripten/system/include/GL/glew.h +6 -0
  145. data/modules/emscripten/system/include/GL/glext.h +11127 -0
  146. data/modules/emscripten/system/include/GL/glfw.h +518 -0
  147. data/modules/emscripten/system/include/GL/glu.h +353 -0
  148. data/modules/emscripten/system/include/GL/glut.h +21 -0
  149. data/modules/emscripten/system/include/GLES/gl.h +770 -0
  150. data/modules/emscripten/system/include/GLES/glext.h +1278 -0
  151. data/modules/emscripten/system/include/GLES/glplatform.h +30 -0
  152. data/modules/emscripten/system/include/GLES2/gl2.h +621 -0
  153. data/modules/emscripten/system/include/GLES2/gl2ext.h +803 -0
  154. data/modules/emscripten/system/include/GLES2/gl2platform.h +30 -0
  155. data/modules/emscripten/system/include/KHR/khrplatform.h +277 -0
  156. data/modules/emscripten/system/include/SDL/COPYING +19 -0
  157. data/modules/emscripten/system/include/SDL/SDL.h +162 -0
  158. data/modules/emscripten/system/include/SDL/SDL_assert.h +241 -0
  159. data/modules/emscripten/system/include/SDL/SDL_atomic.h +318 -0
  160. data/modules/emscripten/system/include/SDL/SDL_audio.h +509 -0
  161. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +60 -0
  162. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +75 -0
  163. data/modules/emscripten/system/include/SDL/SDL_compat.h +365 -0
  164. data/modules/emscripten/system/include/SDL/SDL_config.h +48 -0
  165. data/modules/emscripten/system/include/SDL/SDL_config.h.in +297 -0
  166. data/modules/emscripten/system/include/SDL/SDL_config_android.h +133 -0
  167. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +148 -0
  168. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +172 -0
  169. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +74 -0
  170. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +129 -0
  171. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +125 -0
  172. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +207 -0
  173. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +119 -0
  174. data/modules/emscripten/system/include/SDL/SDL_copying.h +20 -0
  175. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +150 -0
  176. data/modules/emscripten/system/include/SDL/SDL_endian.h +248 -0
  177. data/modules/emscripten/system/include/SDL/SDL_error.h +77 -0
  178. data/modules/emscripten/system/include/SDL/SDL_events.h +639 -0
  179. data/modules/emscripten/system/include/SDL/SDL_gesture.h +91 -0
  180. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +246 -0
  181. data/modules/emscripten/system/include/SDL/SDL_haptic.h +1200 -0
  182. data/modules/emscripten/system/include/SDL/SDL_hints.h +206 -0
  183. data/modules/emscripten/system/include/SDL/SDL_image.h +138 -0
  184. data/modules/emscripten/system/include/SDL/SDL_input.h +87 -0
  185. data/modules/emscripten/system/include/SDL/SDL_joystick.h +208 -0
  186. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +169 -0
  187. data/modules/emscripten/system/include/SDL/SDL_keycode.h +344 -0
  188. data/modules/emscripten/system/include/SDL/SDL_loadso.h +85 -0
  189. data/modules/emscripten/system/include/SDL/SDL_log.h +211 -0
  190. data/modules/emscripten/system/include/SDL/SDL_main.h +98 -0
  191. data/modules/emscripten/system/include/SDL/SDL_mixer.h +634 -0
  192. data/modules/emscripten/system/include/SDL/SDL_mouse.h +213 -0
  193. data/modules/emscripten/system/include/SDL/SDL_mutex.h +248 -0
  194. data/modules/emscripten/system/include/SDL/SDL_name.h +11 -0
  195. data/modules/emscripten/system/include/SDL/SDL_opengl.h +11116 -0
  196. data/modules/emscripten/system/include/SDL/SDL_opengles.h +38 -0
  197. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +38 -0
  198. data/modules/emscripten/system/include/SDL/SDL_pixels.h +423 -0
  199. data/modules/emscripten/system/include/SDL/SDL_platform.h +160 -0
  200. data/modules/emscripten/system/include/SDL/SDL_power.h +79 -0
  201. data/modules/emscripten/system/include/SDL/SDL_quit.h +58 -0
  202. data/modules/emscripten/system/include/SDL/SDL_rect.h +136 -0
  203. data/modules/emscripten/system/include/SDL/SDL_render.h +615 -0
  204. data/modules/emscripten/system/include/SDL/SDL_revision.h +2 -0
  205. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +2 -0
  206. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +123 -0
  207. data/modules/emscripten/system/include/SDL/SDL_rwops.h +220 -0
  208. data/modules/emscripten/system/include/SDL/SDL_scancode.h +398 -0
  209. data/modules/emscripten/system/include/SDL/SDL_shape.h +147 -0
  210. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +764 -0
  211. data/modules/emscripten/system/include/SDL/SDL_surface.h +499 -0
  212. data/modules/emscripten/system/include/SDL/SDL_syswm.h +241 -0
  213. data/modules/emscripten/system/include/SDL/SDL_thread.h +182 -0
  214. data/modules/emscripten/system/include/SDL/SDL_timer.h +108 -0
  215. data/modules/emscripten/system/include/SDL/SDL_touch.h +124 -0
  216. data/modules/emscripten/system/include/SDL/SDL_ttf.h +249 -0
  217. data/modules/emscripten/system/include/SDL/SDL_types.h +29 -0
  218. data/modules/emscripten/system/include/SDL/SDL_version.h +166 -0
  219. data/modules/emscripten/system/include/SDL/SDL_video.h +820 -0
  220. data/modules/emscripten/system/include/SDL/begin_code.h +135 -0
  221. data/modules/emscripten/system/include/SDL/close_code.h +37 -0
  222. data/modules/emscripten/system/include/X11/X.h +717 -0
  223. data/modules/emscripten/system/include/X11/Xatom.h +79 -0
  224. data/modules/emscripten/system/include/X11/Xfuncproto.h +127 -0
  225. data/modules/emscripten/system/include/X11/Xlib.h +4023 -0
  226. data/modules/emscripten/system/include/X11/Xosdefs.h +116 -0
  227. data/modules/emscripten/system/include/X11/Xutil.h +826 -0
  228. data/modules/emscripten/system/include/X11/keysym.h +73 -0
  229. data/modules/emscripten/system/include/X11/keysymdef.h +2389 -0
  230. data/modules/emscripten/system/include/bsd/float.h +91 -0
  231. data/modules/emscripten/system/include/bsd/readme.txt +2 -0
  232. data/modules/emscripten/system/include/bsd/sys/mman.h +180 -0
  233. data/modules/emscripten/system/include/bsd/sys/utsname.h +70 -0
  234. data/modules/emscripten/system/include/dlfcn.h +31 -0
  235. data/modules/emscripten/system/include/emscripten/bind.h +1210 -0
  236. data/modules/emscripten/system/include/emscripten/emscripten.h +388 -0
  237. data/modules/emscripten/system/include/emscripten/val.h +311 -0
  238. data/modules/emscripten/system/include/emscripten/wire.h +393 -0
  239. data/modules/emscripten/system/include/err.h +95 -0
  240. data/modules/emscripten/system/include/execinfo.h +44 -0
  241. data/modules/emscripten/system/include/features.h +3 -0
  242. data/modules/emscripten/system/include/gc.h +70 -0
  243. data/modules/emscripten/system/include/gfx/png.h +3798 -0
  244. data/modules/emscripten/system/include/gfx/pngconf.h +1665 -0
  245. data/modules/emscripten/system/include/gfx/tiff.h +654 -0
  246. data/modules/emscripten/system/include/gfx/tiffconf.h +104 -0
  247. data/modules/emscripten/system/include/gfx/tiffio.h +526 -0
  248. data/modules/emscripten/system/include/gfx/tiffvers.h +9 -0
  249. data/modules/emscripten/system/include/jansson.h +323 -0
  250. data/modules/emscripten/system/include/jansson_config.h +54 -0
  251. data/modules/emscripten/system/include/libc/_ansi.h +135 -0
  252. data/modules/emscripten/system/include/libc/_syslist.h +40 -0
  253. data/modules/emscripten/system/include/libc/alloca.h +21 -0
  254. data/modules/emscripten/system/include/libc/ar.h +69 -0
  255. data/modules/emscripten/system/include/libc/argz.h +33 -0
  256. data/modules/emscripten/system/include/libc/assert.h +46 -0
  257. data/modules/emscripten/system/include/libc/complex.h +124 -0
  258. data/modules/emscripten/system/include/libc/ctype.h +196 -0
  259. data/modules/emscripten/system/include/libc/dirent.h +16 -0
  260. data/modules/emscripten/system/include/libc/endian.h +3 -0
  261. data/modules/emscripten/system/include/libc/envlock.h +15 -0
  262. data/modules/emscripten/system/include/libc/envz.h +16 -0
  263. data/modules/emscripten/system/include/libc/errno.h +11 -0
  264. data/modules/emscripten/system/include/libc/fastmath.h +13 -0
  265. data/modules/emscripten/system/include/libc/fcntl.h +1 -0
  266. data/modules/emscripten/system/include/libc/fnmatch.h +55 -0
  267. data/modules/emscripten/system/include/libc/getopt.h +196 -0
  268. data/modules/emscripten/system/include/libc/glob.h +89 -0
  269. data/modules/emscripten/system/include/libc/grp.h +94 -0
  270. data/modules/emscripten/system/include/libc/iconv.h +62 -0
  271. data/modules/emscripten/system/include/libc/ieeefp.h +256 -0
  272. data/modules/emscripten/system/include/libc/ifaddrs.h +64 -0
  273. data/modules/emscripten/system/include/libc/inttypes.h +290 -0
  274. data/modules/emscripten/system/include/libc/iso646.h +43 -0
  275. data/modules/emscripten/system/include/libc/langinfo.h +316 -0
  276. data/modules/emscripten/system/include/libc/libgen.h +23 -0
  277. data/modules/emscripten/system/include/libc/limits.h +155 -0
  278. data/modules/emscripten/system/include/libc/locale.h +80 -0
  279. data/modules/emscripten/system/include/libc/machine/_default_types.h +121 -0
  280. data/modules/emscripten/system/include/libc/machine/_types.h +8 -0
  281. data/modules/emscripten/system/include/libc/machine/ansi.h +1 -0
  282. data/modules/emscripten/system/include/libc/machine/endian.h +31 -0
  283. data/modules/emscripten/system/include/libc/machine/fastmath.h +100 -0
  284. data/modules/emscripten/system/include/libc/machine/ieeefp.h +376 -0
  285. data/modules/emscripten/system/include/libc/machine/malloc.h +8 -0
  286. data/modules/emscripten/system/include/libc/machine/param.h +1 -0
  287. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +43 -0
  288. data/modules/emscripten/system/include/libc/machine/setjmp.h +361 -0
  289. data/modules/emscripten/system/include/libc/machine/stdlib.h +8 -0
  290. data/modules/emscripten/system/include/libc/machine/termios.h +1 -0
  291. data/modules/emscripten/system/include/libc/machine/time.h +19 -0
  292. data/modules/emscripten/system/include/libc/machine/types.h +30 -0
  293. data/modules/emscripten/system/include/libc/malloc.h +169 -0
  294. data/modules/emscripten/system/include/libc/math.h +594 -0
  295. data/modules/emscripten/system/include/libc/newlib.h +2 -0
  296. data/modules/emscripten/system/include/libc/paths.h +7 -0
  297. data/modules/emscripten/system/include/libc/process.h +44 -0
  298. data/modules/emscripten/system/include/libc/pthread.h +362 -0
  299. data/modules/emscripten/system/include/libc/pwd.h +78 -0
  300. data/modules/emscripten/system/include/libc/readme.txt +3 -0
  301. data/modules/emscripten/system/include/libc/reent.h +183 -0
  302. data/modules/emscripten/system/include/libc/regdef.h +7 -0
  303. data/modules/emscripten/system/include/libc/regex.h +102 -0
  304. data/modules/emscripten/system/include/libc/sched.h +97 -0
  305. data/modules/emscripten/system/include/libc/search.h +59 -0
  306. data/modules/emscripten/system/include/libc/setjmp.h +20 -0
  307. data/modules/emscripten/system/include/libc/signal.h +30 -0
  308. data/modules/emscripten/system/include/libc/stdarg.h +50 -0
  309. data/modules/emscripten/system/include/libc/stddef.h +64 -0
  310. data/modules/emscripten/system/include/libc/stdint.h +493 -0
  311. data/modules/emscripten/system/include/libc/stdio.h +694 -0
  312. data/modules/emscripten/system/include/libc/stdlib.h +230 -0
  313. data/modules/emscripten/system/include/libc/string.h +105 -0
  314. data/modules/emscripten/system/include/libc/strings.h +35 -0
  315. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +223 -0
  316. data/modules/emscripten/system/include/libc/sys/_types.h +93 -0
  317. data/modules/emscripten/system/include/libc/sys/cdefs.h +123 -0
  318. data/modules/emscripten/system/include/libc/sys/config.h +255 -0
  319. data/modules/emscripten/system/include/libc/sys/custom_file.h +2 -0
  320. data/modules/emscripten/system/include/libc/sys/dir.h +10 -0
  321. data/modules/emscripten/system/include/libc/sys/dirent.h +58 -0
  322. data/modules/emscripten/system/include/libc/sys/errno.h +190 -0
  323. data/modules/emscripten/system/include/libc/sys/fcntl.h +4 -0
  324. data/modules/emscripten/system/include/libc/sys/features.h +212 -0
  325. data/modules/emscripten/system/include/libc/sys/file.h +2 -0
  326. data/modules/emscripten/system/include/libc/sys/iconvnls.h +77 -0
  327. data/modules/emscripten/system/include/libc/sys/lock.h +24 -0
  328. data/modules/emscripten/system/include/libc/sys/param.h +25 -0
  329. data/modules/emscripten/system/include/libc/sys/queue.h +471 -0
  330. data/modules/emscripten/system/include/libc/sys/reent.h +843 -0
  331. data/modules/emscripten/system/include/libc/sys/resource.h +59 -0
  332. data/modules/emscripten/system/include/libc/sys/sched.h +67 -0
  333. data/modules/emscripten/system/include/libc/sys/signal.h +314 -0
  334. data/modules/emscripten/system/include/libc/sys/stat.h +222 -0
  335. data/modules/emscripten/system/include/libc/sys/stdio.h +27 -0
  336. data/modules/emscripten/system/include/libc/sys/string.h +2 -0
  337. data/modules/emscripten/system/include/libc/sys/syslimits.h +65 -0
  338. data/modules/emscripten/system/include/libc/sys/termios.h +280 -0
  339. data/modules/emscripten/system/include/libc/sys/time.h +85 -0
  340. data/modules/emscripten/system/include/libc/sys/timeb.h +39 -0
  341. data/modules/emscripten/system/include/libc/sys/times.h +28 -0
  342. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +97 -0
  343. data/modules/emscripten/system/include/libc/sys/types.h +481 -0
  344. data/modules/emscripten/system/include/libc/sys/unistd.h +514 -0
  345. data/modules/emscripten/system/include/libc/sys/utime.h +26 -0
  346. data/modules/emscripten/system/include/libc/sys/wait.h +40 -0
  347. data/modules/emscripten/system/include/libc/tar.h +39 -0
  348. data/modules/emscripten/system/include/libc/termios.h +7 -0
  349. data/modules/emscripten/system/include/libc/time.h +273 -0
  350. data/modules/emscripten/system/include/libc/unctrl.h +46 -0
  351. data/modules/emscripten/system/include/libc/unistd.h +6 -0
  352. data/modules/emscripten/system/include/libc/utime.h +12 -0
  353. data/modules/emscripten/system/include/libc/utmp.h +8 -0
  354. data/modules/emscripten/system/include/libc/wchar.h +194 -0
  355. data/modules/emscripten/system/include/libc/wctype.h +47 -0
  356. data/modules/emscripten/system/include/libc/wordexp.h +53 -0
  357. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +91 -0
  358. data/modules/emscripten/system/include/libcxx/LICENSE.txt +76 -0
  359. data/modules/emscripten/system/include/libcxx/__bit_reference +1268 -0
  360. data/modules/emscripten/system/include/libcxx/__config +485 -0
  361. data/modules/emscripten/system/include/libcxx/__debug +193 -0
  362. data/modules/emscripten/system/include/libcxx/__functional_03 +2130 -0
  363. data/modules/emscripten/system/include/libcxx/__functional_base +437 -0
  364. data/modules/emscripten/system/include/libcxx/__functional_base_03 +1087 -0
  365. data/modules/emscripten/system/include/libcxx/__hash_table +1945 -0
  366. data/modules/emscripten/system/include/libcxx/__locale +1435 -0
  367. data/modules/emscripten/system/include/libcxx/__mutex_base +438 -0
  368. data/modules/emscripten/system/include/libcxx/__split_buffer +654 -0
  369. data/modules/emscripten/system/include/libcxx/__sso_allocator +77 -0
  370. data/modules/emscripten/system/include/libcxx/__std_stream +317 -0
  371. data/modules/emscripten/system/include/libcxx/__tree +2293 -0
  372. data/modules/emscripten/system/include/libcxx/__tuple +305 -0
  373. data/modules/emscripten/system/include/libcxx/__tuple_03 +27 -0
  374. data/modules/emscripten/system/include/libcxx/__undef_min_max +19 -0
  375. data/modules/emscripten/system/include/libcxx/algorithm +5458 -0
  376. data/modules/emscripten/system/include/libcxx/array +341 -0
  377. data/modules/emscripten/system/include/libcxx/atomic +1521 -0
  378. data/modules/emscripten/system/include/libcxx/bitset +1081 -0
  379. data/modules/emscripten/system/include/libcxx/cassert +25 -0
  380. data/modules/emscripten/system/include/libcxx/ccomplex +29 -0
  381. data/modules/emscripten/system/include/libcxx/cctype +164 -0
  382. data/modules/emscripten/system/include/libcxx/cerrno +393 -0
  383. data/modules/emscripten/system/include/libcxx/cfenv +82 -0
  384. data/modules/emscripten/system/include/libcxx/cfloat +78 -0
  385. data/modules/emscripten/system/include/libcxx/chrono +898 -0
  386. data/modules/emscripten/system/include/libcxx/cinttypes +259 -0
  387. data/modules/emscripten/system/include/libcxx/ciso646 +25 -0
  388. data/modules/emscripten/system/include/libcxx/climits +48 -0
  389. data/modules/emscripten/system/include/libcxx/clocale +53 -0
  390. data/modules/emscripten/system/include/libcxx/cmath +1683 -0
  391. data/modules/emscripten/system/include/libcxx/codecvt +547 -0
  392. data/modules/emscripten/system/include/libcxx/complex +1526 -0
  393. data/modules/emscripten/system/include/libcxx/complex.h +35 -0
  394. data/modules/emscripten/system/include/libcxx/condition_variable +256 -0
  395. data/modules/emscripten/system/include/libcxx/csetjmp +52 -0
  396. data/modules/emscripten/system/include/libcxx/csignal +58 -0
  397. data/modules/emscripten/system/include/libcxx/cstdarg +48 -0
  398. data/modules/emscripten/system/include/libcxx/cstdbool +32 -0
  399. data/modules/emscripten/system/include/libcxx/cstddef +103 -0
  400. data/modules/emscripten/system/include/libcxx/cstdint +191 -0
  401. data/modules/emscripten/system/include/libcxx/cstdio +175 -0
  402. data/modules/emscripten/system/include/libcxx/cstdlib +172 -0
  403. data/modules/emscripten/system/include/libcxx/cstring +112 -0
  404. data/modules/emscripten/system/include/libcxx/ctgmath +29 -0
  405. data/modules/emscripten/system/include/libcxx/ctime +72 -0
  406. data/modules/emscripten/system/include/libcxx/cwchar +208 -0
  407. data/modules/emscripten/system/include/libcxx/cwctype +213 -0
  408. data/modules/emscripten/system/include/libcxx/deque +2846 -0
  409. data/modules/emscripten/system/include/libcxx/exception +250 -0
  410. data/modules/emscripten/system/include/libcxx/ext/__hash +46 -0
  411. data/modules/emscripten/system/include/libcxx/ext/hash_map +1003 -0
  412. data/modules/emscripten/system/include/libcxx/ext/hash_set +657 -0
  413. data/modules/emscripten/system/include/libcxx/forward_list +1636 -0
  414. data/modules/emscripten/system/include/libcxx/fstream +1415 -0
  415. data/modules/emscripten/system/include/libcxx/functional +2063 -0
  416. data/modules/emscripten/system/include/libcxx/future +2505 -0
  417. data/modules/emscripten/system/include/libcxx/initializer_list +105 -0
  418. data/modules/emscripten/system/include/libcxx/iomanip +504 -0
  419. data/modules/emscripten/system/include/libcxx/ios +988 -0
  420. data/modules/emscripten/system/include/libcxx/iosfwd +194 -0
  421. data/modules/emscripten/system/include/libcxx/iostream +60 -0
  422. data/modules/emscripten/system/include/libcxx/istream +1713 -0
  423. data/modules/emscripten/system/include/libcxx/iterator +1869 -0
  424. data/modules/emscripten/system/include/libcxx/limits +809 -0
  425. data/modules/emscripten/system/include/libcxx/list +2275 -0
  426. data/modules/emscripten/system/include/libcxx/locale +4591 -0
  427. data/modules/emscripten/system/include/libcxx/map +1924 -0
  428. data/modules/emscripten/system/include/libcxx/memory +5437 -0
  429. data/modules/emscripten/system/include/libcxx/mutex +566 -0
  430. data/modules/emscripten/system/include/libcxx/new +117 -0
  431. data/modules/emscripten/system/include/libcxx/numeric +197 -0
  432. data/modules/emscripten/system/include/libcxx/ostream +1286 -0
  433. data/modules/emscripten/system/include/libcxx/queue +717 -0
  434. data/modules/emscripten/system/include/libcxx/random +6750 -0
  435. data/modules/emscripten/system/include/libcxx/ratio +487 -0
  436. data/modules/emscripten/system/include/libcxx/readme.txt +1 -0
  437. data/modules/emscripten/system/include/libcxx/regex +6439 -0
  438. data/modules/emscripten/system/include/libcxx/scoped_allocator +578 -0
  439. data/modules/emscripten/system/include/libcxx/set +1025 -0
  440. data/modules/emscripten/system/include/libcxx/sstream +888 -0
  441. data/modules/emscripten/system/include/libcxx/stack +292 -0
  442. data/modules/emscripten/system/include/libcxx/stdexcept +162 -0
  443. data/modules/emscripten/system/include/libcxx/streambuf +564 -0
  444. data/modules/emscripten/system/include/libcxx/string +3987 -0
  445. data/modules/emscripten/system/include/libcxx/strstream +400 -0
  446. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +5 -0
  447. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +38 -0
  448. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +146 -0
  449. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +79 -0
  450. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +116 -0
  451. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +113 -0
  452. data/modules/emscripten/system/include/libcxx/support/win32/support.h +115 -0
  453. data/modules/emscripten/system/include/libcxx/system_error +636 -0
  454. data/modules/emscripten/system/include/libcxx/tgmath.h +29 -0
  455. data/modules/emscripten/system/include/libcxx/thread +459 -0
  456. data/modules/emscripten/system/include/libcxx/tuple +1092 -0
  457. data/modules/emscripten/system/include/libcxx/type_traits +3040 -0
  458. data/modules/emscripten/system/include/libcxx/typeindex +103 -0
  459. data/modules/emscripten/system/include/libcxx/typeinfo +124 -0
  460. data/modules/emscripten/system/include/libcxx/unordered_map +1864 -0
  461. data/modules/emscripten/system/include/libcxx/unordered_set +1144 -0
  462. data/modules/emscripten/system/include/libcxx/utility +583 -0
  463. data/modules/emscripten/system/include/libcxx/valarray +4779 -0
  464. data/modules/emscripten/system/include/libcxx/vector +3228 -0
  465. data/modules/emscripten/system/include/memory.h +10 -0
  466. data/modules/emscripten/system/include/mntent.h +23 -0
  467. data/modules/emscripten/system/include/net/arpa/inet.h +32 -0
  468. data/modules/emscripten/system/include/net/arpa/nameser.h +535 -0
  469. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +187 -0
  470. data/modules/emscripten/system/include/net/if.h +87 -0
  471. data/modules/emscripten/system/include/net/netinet/in.h +166 -0
  472. data/modules/emscripten/system/include/net/netinet/tcp.h +246 -0
  473. data/modules/emscripten/system/include/net/resolv.h +389 -0
  474. data/modules/emscripten/system/include/netdb.h +94 -0
  475. data/modules/emscripten/system/include/nl_types.h +19 -0
  476. data/modules/emscripten/system/include/poll.h +3 -0
  477. data/modules/emscripten/system/include/pty.h +6 -0
  478. data/modules/emscripten/system/include/semaphore.h +31 -0
  479. data/modules/emscripten/system/include/spawn.h +105 -0
  480. data/modules/emscripten/system/include/stdbool.h +16 -0
  481. data/modules/emscripten/system/include/sys/bitypes.h +3 -0
  482. data/modules/emscripten/system/include/sys/io.h +14 -0
  483. data/modules/emscripten/system/include/sys/ioctl.h +26 -0
  484. data/modules/emscripten/system/include/sys/poll.h +31 -0
  485. data/modules/emscripten/system/include/sys/select.h +14 -0
  486. data/modules/emscripten/system/include/sys/socket.h +101 -0
  487. data/modules/emscripten/system/include/sys/socketvar.h +3 -0
  488. data/modules/emscripten/system/include/sys/statvfs.h +32 -0
  489. data/modules/emscripten/system/include/sys/sysctl.h +14 -0
  490. data/modules/emscripten/system/include/sys/uio.h +22 -0
  491. data/modules/emscripten/system/include/sys/un.h +66 -0
  492. data/modules/emscripten/system/include/sysexits.h +108 -0
  493. data/modules/emscripten/system/include/unwind.h +154 -0
  494. data/modules/emscripten/system/include/xlocale.h +47 -0
  495. data/modules/emscripten/system/include/zconf.h +428 -0
  496. data/modules/emscripten/system/include/zlib.h +1613 -0
  497. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +97 -0
  498. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +47 -0
  499. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +116 -0
  500. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +46 -0
  501. data/modules/emscripten/system/lib/compiler-rt/int_math.h +67 -0
  502. data/modules/emscripten/system/lib/compiler-rt/int_types.h +140 -0
  503. data/modules/emscripten/system/lib/compiler-rt/int_util.h +29 -0
  504. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +56 -0
  505. data/modules/emscripten/system/lib/compiler-rt/readme.txt +20 -0
  506. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +36 -0
  507. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +251 -0
  508. data/modules/emscripten/system/lib/debugging.cpp +24 -0
  509. data/modules/emscripten/system/lib/dlmalloc.c +6299 -0
  510. data/modules/emscripten/system/lib/embind/bind.cpp +63 -0
  511. data/modules/emscripten/system/lib/libc/gen/err.c +49 -0
  512. data/modules/emscripten/system/lib/libc/gen/errx.c +49 -0
  513. data/modules/emscripten/system/lib/libc/gen/verr.c +58 -0
  514. data/modules/emscripten/system/lib/libc/gen/verrx.c +51 -0
  515. data/modules/emscripten/system/lib/libc/gen/vwarn.c +55 -0
  516. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +48 -0
  517. data/modules/emscripten/system/lib/libc/gen/warn.c +49 -0
  518. data/modules/emscripten/system/lib/libc/gen/warnx.c +49 -0
  519. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +92 -0
  520. data/modules/emscripten/system/lib/libc/musl/readme.txt +1 -0
  521. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +125 -0
  522. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +7 -0
  523. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +14 -0
  524. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +8 -0
  525. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +10 -0
  526. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +63 -0
  527. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +9 -0
  528. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +7 -0
  529. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +6 -0
  530. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +19 -0
  531. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +12 -0
  532. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +19 -0
  533. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +6 -0
  534. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +7 -0
  535. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +62 -0
  536. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +109 -0
  537. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +268 -0
  538. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +8 -0
  539. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +16 -0
  540. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +29 -0
  541. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +42 -0
  542. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +22 -0
  543. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +71 -0
  544. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +7 -0
  545. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +38 -0
  546. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +22 -0
  547. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +17 -0
  548. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +18 -0
  549. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +57 -0
  550. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +17 -0
  551. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +65 -0
  552. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +100 -0
  553. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +7 -0
  554. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +53 -0
  555. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +38 -0
  556. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +52 -0
  557. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +58 -0
  558. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +7 -0
  559. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +8 -0
  560. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +18 -0
  561. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +6 -0
  562. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +6 -0
  563. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +7 -0
  564. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +6 -0
  565. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +7 -0
  566. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +8 -0
  567. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +7 -0
  568. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +8 -0
  569. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +10 -0
  570. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +11 -0
  571. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +8 -0
  572. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +9 -0
  573. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +6 -0
  574. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +10 -0
  575. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +7 -0
  576. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +9 -0
  577. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +8 -0
  578. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +7 -0
  579. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +8 -0
  580. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +8 -0
  581. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +108 -0
  582. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +12 -0
  583. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +6 -0
  584. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +8 -0
  585. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +8 -0
  586. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +9 -0
  587. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +12 -0
  588. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +9 -0
  589. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +511 -0
  590. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +305 -0
  591. data/modules/emscripten/system/lib/libc.symbols +81 -0
  592. data/modules/emscripten/system/lib/libcextra.symbols +61 -0
  593. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +91 -0
  594. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +76 -0
  595. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +83 -0
  596. data/modules/emscripten/system/lib/libcxx/bind.cpp +30 -0
  597. data/modules/emscripten/system/lib/libcxx/chrono.cpp +132 -0
  598. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +81 -0
  599. data/modules/emscripten/system/lib/libcxx/debug.cpp +504 -0
  600. data/modules/emscripten/system/lib/libcxx/exception.cpp +226 -0
  601. data/modules/emscripten/system/lib/libcxx/future.cpp +285 -0
  602. data/modules/emscripten/system/lib/libcxx/hash.cpp +564 -0
  603. data/modules/emscripten/system/lib/libcxx/ios.cpp +455 -0
  604. data/modules/emscripten/system/lib/libcxx/iostream.cpp +68 -0
  605. data/modules/emscripten/system/lib/libcxx/locale.cpp +6093 -0
  606. data/modules/emscripten/system/lib/libcxx/memory.cpp +223 -0
  607. data/modules/emscripten/system/lib/libcxx/mutex.cpp +250 -0
  608. data/modules/emscripten/system/lib/libcxx/new.cpp +205 -0
  609. data/modules/emscripten/system/lib/libcxx/random.cpp +48 -0
  610. data/modules/emscripten/system/lib/libcxx/readme.txt +1 -0
  611. data/modules/emscripten/system/lib/libcxx/regex.cpp +325 -0
  612. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +196 -0
  613. data/modules/emscripten/system/lib/libcxx/string.cpp +687 -0
  614. data/modules/emscripten/system/lib/libcxx/strstream.cpp +329 -0
  615. data/modules/emscripten/system/lib/libcxx/support/solaris/README +4 -0
  616. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +76 -0
  617. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +93 -0
  618. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +245 -0
  619. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +94 -0
  620. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +70 -0
  621. data/modules/emscripten/system/lib/libcxx/symbols +2927 -0
  622. data/modules/emscripten/system/lib/libcxx/system_error.cpp +201 -0
  623. data/modules/emscripten/system/lib/libcxx/thread.cpp +208 -0
  624. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +60 -0
  625. data/modules/emscripten/system/lib/libcxx/utility.cpp +17 -0
  626. data/modules/emscripten/system/lib/libcxx/valarray.cpp +54 -0
  627. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +38 -0
  628. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +76 -0
  629. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +167 -0
  630. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +175 -0
  631. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +99 -0
  632. data/modules/emscripten/system/lib/libcxxabi/readme.txt +1 -0
  633. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +50 -0
  634. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +33 -0
  635. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +34 -0
  636. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +11036 -0
  637. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +622 -0
  638. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +123 -0
  639. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +91 -0
  640. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +231 -0
  641. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +125 -0
  642. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +54 -0
  643. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +242 -0
  644. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +1055 -0
  645. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +27 -0
  646. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +367 -0
  647. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +31 -0
  648. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +41 -0
  649. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +174 -0
  650. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +1146 -0
  651. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +248 -0
  652. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +169 -0
  653. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +53 -0
  654. data/modules/emscripten/system/lib/libcxxabi/symbols +236 -0
  655. data/modules/emscripten/system/lib/sdl.cpp +13 -0
  656. data/modules/emscripten/system/lib/sdl.symbols +1 -0
  657. data/modules/emscripten/tests/hello_world.js +92 -0
  658. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +2347 -0
  659. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +4 -0
  660. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +657 -0
  661. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +147 -0
  662. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +74 -0
  663. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +249 -0
  664. data/modules/emscripten/third_party/CppHeaderParser/README.html +544 -0
  665. data/modules/emscripten/third_party/CppHeaderParser/README.txt +226 -0
  666. data/modules/emscripten/third_party/CppHeaderParser/setup.py +43 -0
  667. data/modules/emscripten/third_party/ansidecl.h +371 -0
  668. data/modules/emscripten/third_party/closure-compiler/COPYING +202 -0
  669. data/modules/emscripten/third_party/closure-compiler/README +292 -0
  670. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  671. data/modules/emscripten/third_party/closure-compiler/readme.txt +3 -0
  672. data/modules/emscripten/third_party/cp-demangle.h +161 -0
  673. data/modules/emscripten/third_party/demangle.h +549 -0
  674. data/modules/emscripten/third_party/demangler.py +49 -0
  675. data/modules/emscripten/third_party/gcc_demangler.c +4226 -0
  676. data/modules/emscripten/third_party/gcc_demangler.js +21282 -0
  677. data/modules/emscripten/third_party/jni/emjvm.cpp +133 -0
  678. data/modules/emscripten/third_party/jni/emjvm.h +8 -0
  679. data/modules/emscripten/third_party/jni/emjvm.js +185 -0
  680. data/modules/emscripten/third_party/jni/jni.h +1154 -0
  681. data/modules/emscripten/third_party/libiberty.h +634 -0
  682. data/modules/emscripten/third_party/lzma.js/README.markdown +37 -0
  683. data/modules/emscripten/third_party/lzma.js/doit.sh +37 -0
  684. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +7 -0
  685. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +676 -0
  686. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +201 -0
  687. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +56 -0
  688. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +160 -0
  689. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +138 -0
  690. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +22 -0
  691. data/modules/emscripten/third_party/lzma.js/lzip/README +77 -0
  692. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +204 -0
  693. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +106 -0
  694. data/modules/emscripten/third_party/lzma.js/lzip/configure +192 -0
  695. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +252 -0
  696. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +268 -0
  697. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +643 -0
  698. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +582 -0
  699. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +378 -0
  700. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +171 -0
  701. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +264 -0
  702. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +545 -0
  703. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +27 -0
  704. data/modules/emscripten/third_party/lzma.js/lzma-full.js +27 -0
  705. data/modules/emscripten/third_party/lzma.js/native_test.sh +5 -0
  706. data/modules/emscripten/third_party/lzma.js/post.js +13 -0
  707. data/modules/emscripten/third_party/lzma.js/pre.js +13 -0
  708. data/modules/emscripten/third_party/lzma.js/test-decoder.js +39 -0
  709. data/modules/emscripten/third_party/lzma.js/test-full.html +9 -0
  710. data/modules/emscripten/third_party/lzma.js/test-full.js +78 -0
  711. data/modules/emscripten/third_party/ply/ANNOUNCE +40 -0
  712. data/modules/emscripten/third_party/ply/CHANGES +1093 -0
  713. data/modules/emscripten/third_party/ply/PKG-INFO +22 -0
  714. data/modules/emscripten/third_party/ply/README +271 -0
  715. data/modules/emscripten/third_party/ply/TODO +16 -0
  716. data/modules/emscripten/third_party/ply/doc/internal.html +874 -0
  717. data/modules/emscripten/third_party/ply/doc/makedoc.py +194 -0
  718. data/modules/emscripten/third_party/ply/doc/ply.html +3262 -0
  719. data/modules/emscripten/third_party/ply/example/BASIC/README +79 -0
  720. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +71 -0
  721. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +74 -0
  722. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +79 -0
  723. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +441 -0
  724. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +424 -0
  725. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +14 -0
  726. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +5 -0
  727. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +22 -0
  728. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +13 -0
  729. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +4 -0
  730. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +17 -0
  731. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +12 -0
  732. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +13 -0
  733. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +4 -0
  734. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +20 -0
  735. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +18 -0
  736. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +5 -0
  737. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +4 -0
  738. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +709 -0
  739. data/modules/emscripten/third_party/ply/example/GardenSnake/README +5 -0
  740. data/modules/emscripten/third_party/ply/example/README +10 -0
  741. data/modules/emscripten/third_party/ply/example/ansic/README +2 -0
  742. data/modules/emscripten/third_party/ply/example/ansic/clex.py +164 -0
  743. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +863 -0
  744. data/modules/emscripten/third_party/ply/example/calc/calc.py +107 -0
  745. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +113 -0
  746. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +157 -0
  747. data/modules/emscripten/third_party/ply/example/cleanup.sh +2 -0
  748. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +130 -0
  749. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +48 -0
  750. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +160 -0
  751. data/modules/emscripten/third_party/ply/example/optcalc/README +9 -0
  752. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +119 -0
  753. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +117 -0
  754. data/modules/emscripten/third_party/ply/example/yply/README +41 -0
  755. data/modules/emscripten/third_party/ply/example/yply/ylex.py +112 -0
  756. data/modules/emscripten/third_party/ply/example/yply/yparse.py +217 -0
  757. data/modules/emscripten/third_party/ply/example/yply/yply.py +53 -0
  758. data/modules/emscripten/third_party/ply/ply/__init__.py +4 -0
  759. data/modules/emscripten/third_party/ply/ply/cpp.py +898 -0
  760. data/modules/emscripten/third_party/ply/ply/ctokens.py +133 -0
  761. data/modules/emscripten/third_party/ply/ply/lex.py +1058 -0
  762. data/modules/emscripten/third_party/ply/ply/yacc.py +3276 -0
  763. data/modules/emscripten/third_party/ply/setup.py +31 -0
  764. data/modules/emscripten/third_party/ply/test/README +7 -0
  765. data/modules/emscripten/third_party/ply/test/calclex.py +49 -0
  766. data/modules/emscripten/third_party/ply/test/cleanup.sh +4 -0
  767. data/modules/emscripten/third_party/ply/test/lex_closure.py +54 -0
  768. data/modules/emscripten/third_party/ply/test/lex_doc1.py +26 -0
  769. data/modules/emscripten/third_party/ply/test/lex_dup1.py +29 -0
  770. data/modules/emscripten/third_party/ply/test/lex_dup2.py +33 -0
  771. data/modules/emscripten/third_party/ply/test/lex_dup3.py +31 -0
  772. data/modules/emscripten/third_party/ply/test/lex_empty.py +20 -0
  773. data/modules/emscripten/third_party/ply/test/lex_error1.py +24 -0
  774. data/modules/emscripten/third_party/ply/test/lex_error2.py +26 -0
  775. data/modules/emscripten/third_party/ply/test/lex_error3.py +27 -0
  776. data/modules/emscripten/third_party/ply/test/lex_error4.py +27 -0
  777. data/modules/emscripten/third_party/ply/test/lex_hedit.py +47 -0
  778. data/modules/emscripten/third_party/ply/test/lex_ignore.py +31 -0
  779. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +29 -0
  780. data/modules/emscripten/third_party/ply/test/lex_literal1.py +25 -0
  781. data/modules/emscripten/third_party/ply/test/lex_literal2.py +25 -0
  782. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +27 -0
  783. data/modules/emscripten/third_party/ply/test/lex_module.py +10 -0
  784. data/modules/emscripten/third_party/ply/test/lex_module_import.py +42 -0
  785. data/modules/emscripten/third_party/ply/test/lex_object.py +55 -0
  786. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +54 -0
  787. data/modules/emscripten/third_party/ply/test/lex_optimize.py +50 -0
  788. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +50 -0
  789. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +52 -0
  790. data/modules/emscripten/third_party/ply/test/lex_re1.py +27 -0
  791. data/modules/emscripten/third_party/ply/test/lex_re2.py +27 -0
  792. data/modules/emscripten/third_party/ply/test/lex_re3.py +29 -0
  793. data/modules/emscripten/third_party/ply/test/lex_rule1.py +27 -0
  794. data/modules/emscripten/third_party/ply/test/lex_rule2.py +29 -0
  795. data/modules/emscripten/third_party/ply/test/lex_rule3.py +27 -0
  796. data/modules/emscripten/third_party/ply/test/lex_state1.py +40 -0
  797. data/modules/emscripten/third_party/ply/test/lex_state2.py +40 -0
  798. data/modules/emscripten/third_party/ply/test/lex_state3.py +42 -0
  799. data/modules/emscripten/third_party/ply/test/lex_state4.py +41 -0
  800. data/modules/emscripten/third_party/ply/test/lex_state5.py +40 -0
  801. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +39 -0
  802. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +40 -0
  803. data/modules/emscripten/third_party/ply/test/lex_state_try.py +45 -0
  804. data/modules/emscripten/third_party/ply/test/lex_token1.py +19 -0
  805. data/modules/emscripten/third_party/ply/test/lex_token2.py +22 -0
  806. data/modules/emscripten/third_party/ply/test/lex_token3.py +24 -0
  807. data/modules/emscripten/third_party/ply/test/lex_token4.py +26 -0
  808. data/modules/emscripten/third_party/ply/test/lex_token5.py +31 -0
  809. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +29 -0
  810. data/modules/emscripten/third_party/ply/test/testlex.py +606 -0
  811. data/modules/emscripten/third_party/ply/test/testyacc.py +347 -0
  812. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +68 -0
  813. data/modules/emscripten/third_party/ply/test/yacc_badid.py +77 -0
  814. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +64 -0
  815. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +68 -0
  816. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +68 -0
  817. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +68 -0
  818. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +68 -0
  819. data/modules/emscripten/third_party/ply/test/yacc_dup.py +68 -0
  820. data/modules/emscripten/third_party/ply/test/yacc_error1.py +68 -0
  821. data/modules/emscripten/third_party/ply/test/yacc_error2.py +68 -0
  822. data/modules/emscripten/third_party/ply/test/yacc_error3.py +67 -0
  823. data/modules/emscripten/third_party/ply/test/yacc_error4.py +72 -0
  824. data/modules/emscripten/third_party/ply/test/yacc_inf.py +56 -0
  825. data/modules/emscripten/third_party/ply/test/yacc_literal.py +69 -0
  826. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +68 -0
  827. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +68 -0
  828. data/modules/emscripten/third_party/ply/test/yacc_nested.py +33 -0
  829. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +67 -0
  830. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +66 -0
  831. data/modules/emscripten/third_party/ply/test/yacc_nop.py +68 -0
  832. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +66 -0
  833. data/modules/emscripten/third_party/ply/test/yacc_notok.py +67 -0
  834. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +68 -0
  835. data/modules/emscripten/third_party/ply/test/yacc_rr.py +72 -0
  836. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +30 -0
  837. data/modules/emscripten/third_party/ply/test/yacc_simple.py +68 -0
  838. data/modules/emscripten/third_party/ply/test/yacc_sr.py +63 -0
  839. data/modules/emscripten/third_party/ply/test/yacc_term1.py +68 -0
  840. data/modules/emscripten/third_party/ply/test/yacc_unused.py +77 -0
  841. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +72 -0
  842. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +63 -0
  843. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +63 -0
  844. data/modules/emscripten/third_party/readme.txt +7 -0
  845. data/modules/emscripten/third_party/websockify/CHANGES.txt +23 -0
  846. data/modules/emscripten/third_party/websockify/LICENSE.txt +16 -0
  847. data/modules/emscripten/third_party/websockify/MANIFEST.in +1 -0
  848. data/modules/emscripten/third_party/websockify/Makefile +11 -0
  849. data/modules/emscripten/third_party/websockify/README.md +168 -0
  850. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +39 -0
  851. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +24 -0
  852. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +61 -0
  853. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +19 -0
  854. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +129 -0
  855. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +36 -0
  856. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +37 -0
  857. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +41 -0
  858. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +75 -0
  859. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +20 -0
  860. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +621 -0
  861. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +165 -0
  862. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +373 -0
  863. data/modules/emscripten/third_party/websockify/docs/TODO +9 -0
  864. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +4 -0
  865. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +114 -0
  866. data/modules/emscripten/third_party/websockify/docs/notes +17 -0
  867. data/modules/emscripten/third_party/websockify/docs/release.txt +9 -0
  868. data/modules/emscripten/third_party/websockify/docs/websockify.1 +110 -0
  869. data/modules/emscripten/third_party/websockify/include/VT100.js +919 -0
  870. data/modules/emscripten/third_party/websockify/include/base64.js +114 -0
  871. data/modules/emscripten/third_party/websockify/include/keysym.js +99 -0
  872. data/modules/emscripten/third_party/websockify/include/util.js +359 -0
  873. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +109 -0
  874. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  875. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +4 -0
  876. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +391 -0
  877. data/modules/emscripten/third_party/websockify/include/websock.js +422 -0
  878. data/modules/emscripten/third_party/websockify/include/webutil.js +216 -0
  879. data/modules/emscripten/third_party/websockify/include/wsirc.js +235 -0
  880. data/modules/emscripten/third_party/websockify/include/wstelnet.js +335 -0
  881. data/modules/emscripten/third_party/websockify/other/Makefile +14 -0
  882. data/modules/emscripten/third_party/websockify/other/README.md +51 -0
  883. data/modules/emscripten/third_party/websockify/other/launch.sh +108 -0
  884. data/modules/emscripten/third_party/websockify/other/project.clj +13 -0
  885. data/modules/emscripten/third_party/websockify/other/websocket.c +802 -0
  886. data/modules/emscripten/third_party/websockify/other/websocket.h +84 -0
  887. data/modules/emscripten/third_party/websockify/other/websocket.rb +456 -0
  888. data/modules/emscripten/third_party/websockify/other/websockify.c +385 -0
  889. data/modules/emscripten/third_party/websockify/other/websockify.clj +233 -0
  890. data/modules/emscripten/third_party/websockify/other/websockify.js +196 -0
  891. data/modules/emscripten/third_party/websockify/other/websockify.rb +171 -0
  892. data/modules/emscripten/third_party/websockify/other/wswrap +22 -0
  893. data/modules/emscripten/third_party/websockify/rebind +18 -0
  894. data/modules/emscripten/third_party/websockify/rebind.c +94 -0
  895. data/modules/emscripten/third_party/websockify/run +5 -0
  896. data/modules/emscripten/third_party/websockify/setup.py +30 -0
  897. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +29 -0
  898. data/modules/emscripten/third_party/websockify/tests/base64.html +91 -0
  899. data/modules/emscripten/third_party/websockify/tests/base64.js +12 -0
  900. data/modules/emscripten/third_party/websockify/tests/echo.html +148 -0
  901. data/modules/emscripten/third_party/websockify/tests/echo.py +75 -0
  902. data/modules/emscripten/third_party/websockify/tests/echo.rb +62 -0
  903. data/modules/emscripten/third_party/websockify/tests/latency.html +290 -0
  904. data/modules/emscripten/third_party/websockify/tests/latency.py +75 -0
  905. data/modules/emscripten/third_party/websockify/tests/load.html +250 -0
  906. data/modules/emscripten/third_party/websockify/tests/load.py +167 -0
  907. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +168 -0
  908. data/modules/emscripten/third_party/websockify/tests/simple.html +68 -0
  909. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +22 -0
  910. data/modules/emscripten/third_party/websockify/websockify/__init__.py +2 -0
  911. data/modules/emscripten/third_party/websockify/websockify/websocket.py +982 -0
  912. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +393 -0
  913. data/modules/emscripten/third_party/websockify/websockify.py +5 -0
  914. data/modules/emscripten/third_party/websockify/wsirc.html +99 -0
  915. data/modules/emscripten/third_party/websockify/wstelnet.html +74 -0
  916. data/modules/emscripten/tools/__init__.py +0 -0
  917. data/modules/emscripten/tools/__init__.pyc +0 -0
  918. data/modules/emscripten/tools/autodebugger.py +289 -0
  919. data/modules/emscripten/tools/autodebugger_c.py +37 -0
  920. data/modules/emscripten/tools/autodebugger_indenter.py +18 -0
  921. data/modules/emscripten/tools/autodebugger_js.py +47 -0
  922. data/modules/emscripten/tools/autodediffer.py +60 -0
  923. data/modules/emscripten/tools/bindings_generator.py +832 -0
  924. data/modules/emscripten/tools/bisect_pair.py +88 -0
  925. data/modules/emscripten/tools/cache.py +198 -0
  926. data/modules/emscripten/tools/cache.pyc +0 -0
  927. data/modules/emscripten/tools/clean_webconsole.py +34 -0
  928. data/modules/emscripten/tools/crunch-worker.js +124 -0
  929. data/modules/emscripten/tools/diff_autodebugger.py +15 -0
  930. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +5129 -0
  931. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +6861 -0
  932. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +6122 -0
  933. data/modules/emscripten/tools/eliminator/eliminator-test.js +8856 -0
  934. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +888 -0
  935. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +463 -0
  936. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +317 -0
  937. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +75 -0
  938. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +75 -0
  939. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +1363 -0
  940. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +2005 -0
  941. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  942. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +22 -0
  943. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +28 -0
  944. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +402 -0
  945. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  946. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  947. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  948. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  949. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  950. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  951. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  952. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  953. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  954. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  955. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  956. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  957. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  958. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  959. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  960. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  961. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  962. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  963. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  964. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  965. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  966. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  967. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  968. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  969. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  970. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  971. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  972. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  973. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  974. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  975. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  976. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  977. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  978. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  979. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  980. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  981. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  982. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  983. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  984. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  985. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  986. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  987. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  988. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  989. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  990. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  991. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  992. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  993. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  994. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  995. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  996. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  997. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  998. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  999. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1000. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1001. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1002. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1003. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1004. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1005. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1006. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1007. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1008. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1009. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1010. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1011. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1012. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1013. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1014. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1015. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1016. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1017. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1018. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1019. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1020. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1021. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1022. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +33 -0
  1023. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +97 -0
  1024. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +138 -0
  1025. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +16 -0
  1026. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +17 -0
  1027. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +85 -0
  1028. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +103 -0
  1029. data/modules/emscripten/tools/emconfiguren.py +19 -0
  1030. data/modules/emscripten/tools/emmaken.py +230 -0
  1031. data/modules/emscripten/tools/emmakenxx.py +18 -0
  1032. data/modules/emscripten/tools/exec_llvm.py +50 -0
  1033. data/modules/emscripten/tools/file2json.py +49 -0
  1034. data/modules/emscripten/tools/file_packager.py +649 -0
  1035. data/modules/emscripten/tools/find_bigfuncs.py +23 -0
  1036. data/modules/emscripten/tools/find_bigis.py +18 -0
  1037. data/modules/emscripten/tools/fix_closure.py +88 -0
  1038. data/modules/emscripten/tools/ie7_fix.py +14 -0
  1039. data/modules/emscripten/tools/js-optimizer.js +3440 -0
  1040. data/modules/emscripten/tools/js_optimizer.py +341 -0
  1041. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  1042. data/modules/emscripten/tools/jsrun.py +27 -0
  1043. data/modules/emscripten/tools/jsrun.pyc +0 -0
  1044. data/modules/emscripten/tools/ll-strip.py +56 -0
  1045. data/modules/emscripten/tools/make_file.py +19 -0
  1046. data/modules/emscripten/tools/make_minigzip.py +13 -0
  1047. data/modules/emscripten/tools/namespacer.py +95 -0
  1048. data/modules/emscripten/tools/nativize_llvm.py +34 -0
  1049. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +58 -0
  1050. data/modules/emscripten/tools/node_modules/source-map/LICENSE +28 -0
  1051. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +166 -0
  1052. data/modules/emscripten/tools/node_modules/source-map/README.md +347 -0
  1053. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +56 -0
  1054. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +152 -0
  1055. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1056. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1057. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +8 -0
  1058. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1059. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1060. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +8 -0
  1061. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +3 -0
  1062. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1063. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1064. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +42 -0
  1065. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1066. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +430 -0
  1067. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1068. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1069. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +117 -0
  1070. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +8 -0
  1071. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1072. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1073. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1074. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  1075. data/modules/emscripten/tools/node_modules/source-map/package.json +74 -0
  1076. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +73 -0
  1077. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +26 -0
  1078. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1079. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1080. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1081. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1082. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1083. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +306 -0
  1084. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1085. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1086. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +152 -0
  1087. data/modules/emscripten/tools/reproduceriter.js +216 -0
  1088. data/modules/emscripten/tools/reproduceriter.py +160 -0
  1089. data/modules/emscripten/tools/response_file.py +28 -0
  1090. data/modules/emscripten/tools/response_file.pyc +0 -0
  1091. data/modules/emscripten/tools/scan_js.py +20 -0
  1092. data/modules/emscripten/tools/scan_ll.py +18 -0
  1093. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +3 -0
  1094. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +46 -0
  1095. data/modules/emscripten/tools/settings_template_readonly.py +47 -0
  1096. data/modules/emscripten/tools/shared.py +1437 -0
  1097. data/modules/emscripten/tools/shared.pyc +0 -0
  1098. data/modules/emscripten/tools/source-maps/sourcemap2json.js +15 -0
  1099. data/modules/emscripten/tools/source-maps/sourcemapper.js +177 -0
  1100. data/modules/emscripten/tools/split.py +97 -0
  1101. data/modules/emscripten/tools/tempfiles.py +40 -0
  1102. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  1103. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +75 -0
  1104. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +91 -0
  1105. data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +570 -0
  1106. data/modules/emscripten/tools/test-js-optimizer-asm-outline.js +606 -0
  1107. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +540 -0
  1108. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +550 -0
  1109. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +36 -0
  1110. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +37 -0
  1111. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +106 -0
  1112. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +110 -0
  1113. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +9 -0
  1114. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +12 -0
  1115. data/modules/emscripten/tools/test-js-optimizer-output.js +291 -0
  1116. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +232 -0
  1117. data/modules/emscripten/tools/test-js-optimizer-regs.js +237 -0
  1118. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +91 -0
  1119. data/modules/emscripten/tools/test-js-optimizer-t2.js +92 -0
  1120. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +17 -0
  1121. data/modules/emscripten/tools/test-js-optimizer-t2c.js +18 -0
  1122. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +49 -0
  1123. data/modules/emscripten/tools/test-js-optimizer-t3.js +50 -0
  1124. data/modules/emscripten/tools/test-js-optimizer.js +401 -0
  1125. data/modules/mruby/AUTHORS +18 -0
  1126. data/modules/mruby/CONTRIBUTING.md +65 -0
  1127. data/modules/mruby/ChangeLog +15 -0
  1128. data/modules/mruby/INSTALL +29 -0
  1129. data/modules/mruby/LEGAL +6 -0
  1130. data/modules/mruby/MITL +20 -0
  1131. data/modules/mruby/Makefile +18 -0
  1132. data/modules/mruby/NEWS +13 -0
  1133. data/modules/mruby/README.md +116 -0
  1134. data/modules/mruby/Rakefile +114 -0
  1135. data/modules/mruby/TODO +11 -0
  1136. data/modules/mruby/benchmark/ao-render.rb +315 -0
  1137. data/modules/mruby/benchmark/bm_so_lists.rb +47 -0
  1138. data/modules/mruby/benchmark/fib39.rb +8 -0
  1139. data/modules/mruby/build_config.rb +88 -0
  1140. data/modules/mruby/doc/compile/README.md +376 -0
  1141. data/modules/mruby/doc/mrbgems/README.md +254 -0
  1142. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  1143. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  1144. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  1145. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  1146. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  1147. data/modules/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  1148. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  1149. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  1150. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  1151. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  1152. data/modules/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  1153. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +23 -0
  1154. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  1155. data/modules/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  1156. data/modules/mruby/examples/targets/ArduinoDue.rb +65 -0
  1157. data/modules/mruby/examples/targets/chipKitMax32.rb +68 -0
  1158. data/modules/mruby/include/mrbconf.h +87 -0
  1159. data/modules/mruby/include/mruby/array.h +63 -0
  1160. data/modules/mruby/include/mruby/class.h +75 -0
  1161. data/modules/mruby/include/mruby/compile.h +176 -0
  1162. data/modules/mruby/include/mruby/data.h +53 -0
  1163. data/modules/mruby/include/mruby/dump.h +151 -0
  1164. data/modules/mruby/include/mruby/gc.h +17 -0
  1165. data/modules/mruby/include/mruby/hash.h +54 -0
  1166. data/modules/mruby/include/mruby/irep.h +40 -0
  1167. data/modules/mruby/include/mruby/khash.h +257 -0
  1168. data/modules/mruby/include/mruby/numeric.h +32 -0
  1169. data/modules/mruby/include/mruby/proc.h +62 -0
  1170. data/modules/mruby/include/mruby/range.h +35 -0
  1171. data/modules/mruby/include/mruby/string.h +78 -0
  1172. data/modules/mruby/include/mruby/value.h +483 -0
  1173. data/modules/mruby/include/mruby/variable.h +78 -0
  1174. data/modules/mruby/include/mruby.h +388 -0
  1175. data/modules/mruby/minirake +477 -0
  1176. data/modules/mruby/mrbgems/default.gembox +61 -0
  1177. data/modules/mruby/mrbgems/full-core.gembox +9 -0
  1178. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +4 -0
  1179. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +204 -0
  1180. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +140 -0
  1181. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +109 -0
  1182. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +5 -0
  1183. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +365 -0
  1184. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +5 -0
  1185. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +243 -0
  1186. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +4 -0
  1187. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +164 -0
  1188. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +44 -0
  1189. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +4 -0
  1190. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +23 -0
  1191. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +4 -0
  1192. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +251 -0
  1193. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +64 -0
  1194. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +4 -0
  1195. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +13 -0
  1196. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +62 -0
  1197. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +26 -0
  1198. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +4 -0
  1199. data/modules/mruby/mrbgems/mruby-math/src/math.c +685 -0
  1200. data/modules/mruby/mrbgems/mruby-math/test/math.rb +136 -0
  1201. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +4 -0
  1202. data/modules/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +31 -0
  1203. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +10 -0
  1204. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +4 -0
  1205. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +108 -0
  1206. data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  1207. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +9 -0
  1208. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +4 -0
  1209. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +117 -0
  1210. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +38 -0
  1211. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +4 -0
  1212. data/modules/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  1213. data/modules/mruby/mrbgems/mruby-print/src/print.c +44 -0
  1214. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +4 -0
  1215. data/modules/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +40 -0
  1216. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +97 -0
  1217. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +41 -0
  1218. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +4 -0
  1219. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +193 -0
  1220. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +48 -0
  1221. data/modules/mruby/mrbgems/mruby-random/src/random.c +231 -0
  1222. data/modules/mruby/mrbgems/mruby-random/src/random.h +12 -0
  1223. data/modules/mruby/mrbgems/mruby-random/test/random.rb +32 -0
  1224. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +4 -0
  1225. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +141 -0
  1226. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +20 -0
  1227. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +4 -0
  1228. data/modules/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  1229. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1102 -0
  1230. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +3 -0
  1231. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +4 -0
  1232. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +52 -0
  1233. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +175 -0
  1234. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +112 -0
  1235. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +4 -0
  1236. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +50 -0
  1237. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +818 -0
  1238. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +77 -0
  1239. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +4 -0
  1240. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +9 -0
  1241. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +55 -0
  1242. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +12 -0
  1243. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +4 -0
  1244. data/modules/mruby/mrbgems/mruby-time/src/time.c +749 -0
  1245. data/modules/mruby/mrbgems/mruby-time/test/time.rb +201 -0
  1246. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +4 -0
  1247. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  1248. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  1249. data/modules/mruby/mrblib/array.rb +111 -0
  1250. data/modules/mruby/mrblib/class.rb +26 -0
  1251. data/modules/mruby/mrblib/compar.rb +104 -0
  1252. data/modules/mruby/mrblib/enum.rb +398 -0
  1253. data/modules/mruby/mrblib/error.rb +66 -0
  1254. data/modules/mruby/mrblib/hash.rb +193 -0
  1255. data/modules/mruby/mrblib/init_mrblib.c +14 -0
  1256. data/modules/mruby/mrblib/kernel.rb +46 -0
  1257. data/modules/mruby/mrblib/mrblib.rake +18 -0
  1258. data/modules/mruby/mrblib/numeric.rb +101 -0
  1259. data/modules/mruby/mrblib/print.rb +18 -0
  1260. data/modules/mruby/mrblib/range.rb +40 -0
  1261. data/modules/mruby/mrblib/string.rb +145 -0
  1262. data/modules/mruby/src/array.c +1150 -0
  1263. data/modules/mruby/src/backtrace.c +73 -0
  1264. data/modules/mruby/src/class.c +1942 -0
  1265. data/modules/mruby/src/codegen.c +2864 -0
  1266. data/modules/mruby/src/compar.c +13 -0
  1267. data/modules/mruby/src/crc.c +38 -0
  1268. data/modules/mruby/src/dump.c +542 -0
  1269. data/modules/mruby/src/enum.c +14 -0
  1270. data/modules/mruby/src/error.c +454 -0
  1271. data/modules/mruby/src/error.h +18 -0
  1272. data/modules/mruby/src/etc.c +204 -0
  1273. data/modules/mruby/src/gc.c +1542 -0
  1274. data/modules/mruby/src/hash.c +1261 -0
  1275. data/modules/mruby/src/init.c +62 -0
  1276. data/modules/mruby/src/kernel.c +1105 -0
  1277. data/modules/mruby/src/keywords +50 -0
  1278. data/modules/mruby/src/lex.def +212 -0
  1279. data/modules/mruby/src/load.c +629 -0
  1280. data/modules/mruby/src/mruby_core.rake +28 -0
  1281. data/modules/mruby/src/node.h +117 -0
  1282. data/modules/mruby/src/numeric.c +1418 -0
  1283. data/modules/mruby/src/object.c +593 -0
  1284. data/modules/mruby/src/opcode.h +160 -0
  1285. data/modules/mruby/src/parse.y +6050 -0
  1286. data/modules/mruby/src/pool.c +190 -0
  1287. data/modules/mruby/src/print.c +71 -0
  1288. data/modules/mruby/src/proc.c +209 -0
  1289. data/modules/mruby/src/range.c +442 -0
  1290. data/modules/mruby/src/re.h +13 -0
  1291. data/modules/mruby/src/state.c +200 -0
  1292. data/modules/mruby/src/string.c +2580 -0
  1293. data/modules/mruby/src/symbol.c +456 -0
  1294. data/modules/mruby/src/value_array.h +27 -0
  1295. data/modules/mruby/src/variable.c +1147 -0
  1296. data/modules/mruby/src/vm.c +2129 -0
  1297. data/modules/mruby/tasks/libmruby.rake +18 -0
  1298. data/modules/mruby/tasks/mrbgem_spec.rake +297 -0
  1299. data/modules/mruby/tasks/mrbgems.rake +85 -0
  1300. data/modules/mruby/tasks/mrbgems_test.rake +88 -0
  1301. data/modules/mruby/tasks/mruby_build.rake +211 -0
  1302. data/modules/mruby/tasks/mruby_build_commands.rake +287 -0
  1303. data/modules/mruby/tasks/mruby_build_gem.rake +67 -0
  1304. data/modules/mruby/tasks/ruby_ext.rake +70 -0
  1305. data/modules/mruby/tasks/toolchains/androideabi.rake +126 -0
  1306. data/modules/mruby/tasks/toolchains/clang.rake +8 -0
  1307. data/modules/mruby/tasks/toolchains/gcc.rake +21 -0
  1308. data/modules/mruby/tasks/toolchains/vs2010.rake +3 -0
  1309. data/modules/mruby/tasks/toolchains/vs2012.rake +44 -0
  1310. data/modules/mruby/test/README.md +7 -0
  1311. data/modules/mruby/test/assert.rb +238 -0
  1312. data/modules/mruby/test/driver.c +118 -0
  1313. data/modules/mruby/test/init_mrbtest.c +24 -0
  1314. data/modules/mruby/test/mrbtest.rake +47 -0
  1315. data/modules/mruby/test/report.rb +4 -0
  1316. data/modules/mruby/test/t/argumenterror.rb +21 -0
  1317. data/modules/mruby/test/t/array.rb +309 -0
  1318. data/modules/mruby/test/t/basicobject.rb +11 -0
  1319. data/modules/mruby/test/t/bs_block.rb +489 -0
  1320. data/modules/mruby/test/t/bs_literal.rb +38 -0
  1321. data/modules/mruby/test/t/class.rb +219 -0
  1322. data/modules/mruby/test/t/comparable.rb +72 -0
  1323. data/modules/mruby/test/t/enumerable.rb +108 -0
  1324. data/modules/mruby/test/t/exception.rb +337 -0
  1325. data/modules/mruby/test/t/false.rb +33 -0
  1326. data/modules/mruby/test/t/float.rb +145 -0
  1327. data/modules/mruby/test/t/gc.rb +45 -0
  1328. data/modules/mruby/test/t/hash.rb +310 -0
  1329. data/modules/mruby/test/t/indexerror.rb +10 -0
  1330. data/modules/mruby/test/t/integer.rb +222 -0
  1331. data/modules/mruby/test/t/kernel.rb +425 -0
  1332. data/modules/mruby/test/t/literals.rb +287 -0
  1333. data/modules/mruby/test/t/localjumperror.rb +13 -0
  1334. data/modules/mruby/test/t/methods.rb +109 -0
  1335. data/modules/mruby/test/t/module.rb +344 -0
  1336. data/modules/mruby/test/t/nameerror.rb +32 -0
  1337. data/modules/mruby/test/t/nil.rb +29 -0
  1338. data/modules/mruby/test/t/nomethoderror.rb +13 -0
  1339. data/modules/mruby/test/t/numeric.rb +29 -0
  1340. data/modules/mruby/test/t/object.rb +11 -0
  1341. data/modules/mruby/test/t/proc.rb +56 -0
  1342. data/modules/mruby/test/t/range.rb +82 -0
  1343. data/modules/mruby/test/t/rangeerror.rb +10 -0
  1344. data/modules/mruby/test/t/regexperror.rb +4 -0
  1345. data/modules/mruby/test/t/runtimeerror.rb +6 -0
  1346. data/modules/mruby/test/t/standarderror.rb +10 -0
  1347. data/modules/mruby/test/t/string.rb +483 -0
  1348. data/modules/mruby/test/t/symbol.rb +27 -0
  1349. data/modules/mruby/test/t/syntax.rb +67 -0
  1350. data/modules/mruby/test/t/true.rb +33 -0
  1351. data/modules/mruby/test/t/typeerror.rb +11 -0
  1352. data/modules/mruby/tools/mrbc/mrbc.c +318 -0
  1353. data/modules/mruby/tools/mrbc/mrbc.rake +14 -0
  1354. data/modules/mruby/travis_config.rb +6 -0
  1355. data/modules/mrubymix/LICENSE +21 -0
  1356. data/modules/mrubymix/README.md +6 -0
  1357. data/modules/mrubymix/bin/mrubymix +29 -0
  1358. data/modules/mrubymix/lib/mrubymix.rb +93 -0
  1359. data/modules/mrubymix/mrubymix.gemspec +13 -0
  1360. data/scripts/gen_gems_config.rb +185 -0
  1361. data/scripts/gen_post.rb +104 -0
  1362. data/templates/minimal/Rakefile +36 -0
  1363. data/templates/minimal/app/app.rb +3 -0
  1364. metadata +1408 -0
@@ -0,0 +1,1435 @@
1
+ // -*- C++ -*-
2
+ //===----------------------------------------------------------------------===//
3
+ //
4
+ // The LLVM Compiler Infrastructure
5
+ //
6
+ // This file is dual licensed under the MIT and the University of Illinois Open
7
+ // Source Licenses. See LICENSE.TXT for details.
8
+ //
9
+ //===----------------------------------------------------------------------===//
10
+
11
+ #ifndef _LIBCPP___LOCALE
12
+ #define _LIBCPP___LOCALE
13
+
14
+ #include <__config>
15
+ #include <string>
16
+ #include <memory>
17
+ #include <utility>
18
+ #include <mutex>
19
+ #include <cstdint>
20
+ #include <cctype>
21
+ #include <locale.h>
22
+ #ifdef _WIN32
23
+ # include <support/win32/locale_win32.h>
24
+ #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(EMSCRIPTEN)
25
+ # include <xlocale.h>
26
+ #endif // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || EMSCRIPTEN
27
+
28
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
29
+ #pragma GCC system_header
30
+ #endif
31
+
32
+ _LIBCPP_BEGIN_NAMESPACE_STD
33
+
34
+ class _LIBCPP_TYPE_VIS locale;
35
+
36
+ template <class _Facet>
37
+ _LIBCPP_INLINE_VISIBILITY
38
+ bool
39
+ has_facet(const locale&) _NOEXCEPT;
40
+
41
+ template <class _Facet>
42
+ _LIBCPP_INLINE_VISIBILITY
43
+ const _Facet&
44
+ use_facet(const locale&);
45
+
46
+ class _LIBCPP_TYPE_VIS locale
47
+ {
48
+ public:
49
+ // types:
50
+ class _LIBCPP_TYPE_VIS facet;
51
+ class _LIBCPP_TYPE_VIS id;
52
+
53
+ typedef int category;
54
+ static const category // values assigned here are for exposition only
55
+ none = 0,
56
+ collate = LC_COLLATE_MASK,
57
+ ctype = LC_CTYPE_MASK,
58
+ monetary = LC_MONETARY_MASK,
59
+ numeric = LC_NUMERIC_MASK,
60
+ time = LC_TIME_MASK,
61
+ messages = LC_MESSAGES_MASK,
62
+ all = collate | ctype | monetary | numeric | time | messages;
63
+
64
+ // construct/copy/destroy:
65
+ locale() _NOEXCEPT;
66
+ locale(const locale&) _NOEXCEPT;
67
+ explicit locale(const char*);
68
+ explicit locale(const string&);
69
+ locale(const locale&, const char*, category);
70
+ locale(const locale&, const string&, category);
71
+ template <class _Facet>
72
+ _LIBCPP_INLINE_VISIBILITY locale(const locale&, _Facet*);
73
+ locale(const locale&, const locale&, category);
74
+
75
+ ~locale();
76
+
77
+ const locale& operator=(const locale&) _NOEXCEPT;
78
+
79
+ template <class _Facet> locale combine(const locale&) const;
80
+
81
+ // locale operations:
82
+ string name() const;
83
+ bool operator==(const locale&) const;
84
+ bool operator!=(const locale& __y) const {return !(*this == __y);}
85
+ template <class _CharT, class _Traits, class _Allocator>
86
+ bool operator()(const basic_string<_CharT, _Traits, _Allocator>&,
87
+ const basic_string<_CharT, _Traits, _Allocator>&) const;
88
+
89
+ // global locale objects:
90
+ static locale global(const locale&);
91
+ static const locale& classic();
92
+
93
+ private:
94
+ class __imp;
95
+ __imp* __locale_;
96
+
97
+ void __install_ctor(const locale&, facet*, long);
98
+ static locale& __global();
99
+ bool has_facet(id&) const;
100
+ const facet* use_facet(id&) const;
101
+
102
+ template <class _Facet> friend bool has_facet(const locale&) _NOEXCEPT;
103
+ template <class _Facet> friend const _Facet& use_facet(const locale&);
104
+ };
105
+
106
+ class _LIBCPP_TYPE_VIS locale::facet
107
+ : public __shared_count
108
+ {
109
+ protected:
110
+ _LIBCPP_INLINE_VISIBILITY
111
+ explicit facet(size_t __refs = 0)
112
+ : __shared_count(static_cast<long>(__refs)-1) {}
113
+
114
+ virtual ~facet();
115
+
116
+ // facet(const facet&) = delete; // effectively done in __shared_count
117
+ // void operator=(const facet&) = delete;
118
+ private:
119
+ virtual void __on_zero_shared() _NOEXCEPT;
120
+ };
121
+
122
+ class _LIBCPP_TYPE_VIS locale::id
123
+ {
124
+ once_flag __flag_;
125
+ int32_t __id_;
126
+
127
+ static int32_t __next_id;
128
+ public:
129
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR id() :__id_(0) {}
130
+ private:
131
+ void __init();
132
+ void operator=(const id&); // = delete;
133
+ id(const id&); // = delete;
134
+ public: // only needed for tests
135
+ long __get();
136
+
137
+ friend class locale;
138
+ friend class locale::__imp;
139
+ };
140
+
141
+ template <class _Facet>
142
+ inline _LIBCPP_INLINE_VISIBILITY
143
+ locale::locale(const locale& __other, _Facet* __f)
144
+ {
145
+ __install_ctor(__other, __f, __f ? __f->id.__get() : 0);
146
+ }
147
+
148
+ template <class _Facet>
149
+ locale
150
+ locale::combine(const locale& __other) const
151
+ {
152
+ #ifndef _LIBCPP_NO_EXCEPTIONS
153
+ if (!_VSTD::has_facet<_Facet>(__other))
154
+ throw runtime_error("locale::combine: locale missing facet");
155
+ #endif // _LIBCPP_NO_EXCEPTIONS
156
+ return locale(*this, &const_cast<_Facet&>(_VSTD::use_facet<_Facet>(__other)));
157
+ }
158
+
159
+ template <class _Facet>
160
+ inline _LIBCPP_INLINE_VISIBILITY
161
+ bool
162
+ has_facet(const locale& __l) _NOEXCEPT
163
+ {
164
+ return __l.has_facet(_Facet::id);
165
+ }
166
+
167
+ template <class _Facet>
168
+ inline _LIBCPP_INLINE_VISIBILITY
169
+ const _Facet&
170
+ use_facet(const locale& __l)
171
+ {
172
+ return static_cast<const _Facet&>(*__l.use_facet(_Facet::id));
173
+ }
174
+
175
+ // template <class _CharT> class collate;
176
+
177
+ template <class _CharT>
178
+ class _LIBCPP_TYPE_VIS collate
179
+ : public locale::facet
180
+ {
181
+ public:
182
+ typedef _CharT char_type;
183
+ typedef basic_string<char_type> string_type;
184
+
185
+ _LIBCPP_INLINE_VISIBILITY
186
+ explicit collate(size_t __refs = 0)
187
+ : locale::facet(__refs) {}
188
+
189
+ _LIBCPP_INLINE_VISIBILITY
190
+ int compare(const char_type* __lo1, const char_type* __hi1,
191
+ const char_type* __lo2, const char_type* __hi2) const
192
+ {
193
+ return do_compare(__lo1, __hi1, __lo2, __hi2);
194
+ }
195
+
196
+ _LIBCPP_INLINE_VISIBILITY
197
+ string_type transform(const char_type* __lo, const char_type* __hi) const
198
+ {
199
+ return do_transform(__lo, __hi);
200
+ }
201
+
202
+ _LIBCPP_INLINE_VISIBILITY
203
+ long hash(const char_type* __lo, const char_type* __hi) const
204
+ {
205
+ return do_hash(__lo, __hi);
206
+ }
207
+
208
+ static locale::id id;
209
+
210
+ protected:
211
+ ~collate();
212
+ virtual int do_compare(const char_type* __lo1, const char_type* __hi1,
213
+ const char_type* __lo2, const char_type* __hi2) const;
214
+ virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const
215
+ {return string_type(__lo, __hi);}
216
+ virtual long do_hash(const char_type* __lo, const char_type* __hi) const;
217
+ };
218
+
219
+ template <class _CharT> locale::id collate<_CharT>::id;
220
+
221
+ template <class _CharT>
222
+ collate<_CharT>::~collate()
223
+ {
224
+ }
225
+
226
+ template <class _CharT>
227
+ int
228
+ collate<_CharT>::do_compare(const char_type* __lo1, const char_type* __hi1,
229
+ const char_type* __lo2, const char_type* __hi2) const
230
+ {
231
+ for (; __lo2 != __hi2; ++__lo1, ++__lo2)
232
+ {
233
+ if (__lo1 == __hi1 || *__lo1 < *__lo2)
234
+ return -1;
235
+ if (*__lo2 < *__lo1)
236
+ return 1;
237
+ }
238
+ return __lo1 != __hi1;
239
+ }
240
+
241
+ template <class _CharT>
242
+ long
243
+ collate<_CharT>::do_hash(const char_type* __lo, const char_type* __hi) const
244
+ {
245
+ size_t __h = 0;
246
+ const size_t __sr = __CHAR_BIT__ * sizeof(size_t) - 8;
247
+ const size_t __mask = size_t(0xF) << (__sr + 4);
248
+ for(const char_type* __p = __lo; __p != __hi; ++__p)
249
+ {
250
+ __h = (__h << 4) + static_cast<size_t>(*__p);
251
+ size_t __g = __h & __mask;
252
+ __h ^= __g | (__g >> __sr);
253
+ }
254
+ return static_cast<long>(__h);
255
+ }
256
+
257
+ _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS collate<char>)
258
+ _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS collate<wchar_t>)
259
+
260
+ // template <class CharT> class collate_byname;
261
+
262
+ template <class _CharT> class _LIBCPP_TYPE_VIS collate_byname;
263
+
264
+ template <>
265
+ class _LIBCPP_TYPE_VIS collate_byname<char>
266
+ : public collate<char>
267
+ {
268
+ locale_t __l;
269
+ public:
270
+ typedef char char_type;
271
+ typedef basic_string<char_type> string_type;
272
+
273
+ explicit collate_byname(const char* __n, size_t __refs = 0);
274
+ explicit collate_byname(const string& __n, size_t __refs = 0);
275
+
276
+ protected:
277
+ ~collate_byname();
278
+ virtual int do_compare(const char_type* __lo1, const char_type* __hi1,
279
+ const char_type* __lo2, const char_type* __hi2) const;
280
+ virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const;
281
+ };
282
+
283
+ template <>
284
+ class _LIBCPP_TYPE_VIS collate_byname<wchar_t>
285
+ : public collate<wchar_t>
286
+ {
287
+ locale_t __l;
288
+ public:
289
+ typedef wchar_t char_type;
290
+ typedef basic_string<char_type> string_type;
291
+
292
+ explicit collate_byname(const char* __n, size_t __refs = 0);
293
+ explicit collate_byname(const string& __n, size_t __refs = 0);
294
+
295
+ protected:
296
+ ~collate_byname();
297
+
298
+ virtual int do_compare(const char_type* __lo1, const char_type* __hi1,
299
+ const char_type* __lo2, const char_type* __hi2) const;
300
+ virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const;
301
+ };
302
+
303
+ template <class _CharT, class _Traits, class _Allocator>
304
+ bool
305
+ locale::operator()(const basic_string<_CharT, _Traits, _Allocator>& __x,
306
+ const basic_string<_CharT, _Traits, _Allocator>& __y) const
307
+ {
308
+ return _VSTD::use_facet<_VSTD::collate<_CharT> >(*this).compare(
309
+ __x.data(), __x.data() + __x.size(),
310
+ __y.data(), __y.data() + __y.size()) < 0;
311
+ }
312
+
313
+ // template <class charT> class ctype
314
+
315
+ class _LIBCPP_TYPE_VIS ctype_base
316
+ {
317
+ public:
318
+ #ifdef __GLIBC__
319
+ typedef unsigned short mask;
320
+ static const mask space = _ISspace;
321
+ static const mask print = _ISprint;
322
+ static const mask cntrl = _IScntrl;
323
+ static const mask upper = _ISupper;
324
+ static const mask lower = _ISlower;
325
+ static const mask alpha = _ISalpha;
326
+ static const mask digit = _ISdigit;
327
+ static const mask punct = _ISpunct;
328
+ static const mask xdigit = _ISxdigit;
329
+ static const mask blank = _ISblank;
330
+ #elif defined(_WIN32)
331
+ typedef unsigned short mask;
332
+ static const mask space = _SPACE;
333
+ static const mask print = _BLANK|_PUNCT|_ALPHA|_DIGIT;
334
+ static const mask cntrl = _CONTROL;
335
+ static const mask upper = _UPPER;
336
+ static const mask lower = _LOWER;
337
+ static const mask alpha = _ALPHA;
338
+ static const mask digit = _DIGIT;
339
+ static const mask punct = _PUNCT;
340
+ static const mask xdigit = _HEX;
341
+ static const mask blank = _BLANK;
342
+ #elif (defined(__APPLE__) || defined(__FreeBSD__)) || defined(EMSCRIPTEN)
343
+ #ifdef __APPLE__
344
+ typedef __uint32_t mask;
345
+ #elif defined(__FreeBSD__)
346
+ typedef unsigned long mask;
347
+ #elif defined(EMSCRIPTEN)
348
+ typedef unsigned short mask;
349
+ #endif
350
+ static const mask space = _CTYPE_S;
351
+ static const mask print = _CTYPE_R;
352
+ static const mask cntrl = _CTYPE_C;
353
+ static const mask upper = _CTYPE_U;
354
+ static const mask lower = _CTYPE_L;
355
+ static const mask alpha = _CTYPE_A;
356
+ static const mask digit = _CTYPE_D;
357
+ static const mask punct = _CTYPE_P;
358
+ static const mask xdigit = _CTYPE_X;
359
+ static const mask blank = _CTYPE_B;
360
+ #elif defined(__sun__)
361
+ typedef unsigned int mask;
362
+ static const mask space = _ISSPACE;
363
+ static const mask print = _ISPRINT;
364
+ static const mask cntrl = _ISCNTRL;
365
+ static const mask upper = _ISUPPER;
366
+ static const mask lower = _ISLOWER;
367
+ static const mask alpha = _ISALPHA;
368
+ static const mask digit = _ISDIGIT;
369
+ static const mask punct = _ISPUNCT;
370
+ static const mask xdigit = _ISXDIGIT;
371
+ static const mask blank = _ISBLANK;
372
+ #else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || EMSCRIPTEN || __sun__
373
+ typedef unsigned long mask;
374
+ static const mask space = 1<<0;
375
+ static const mask print = 1<<1;
376
+ static const mask cntrl = 1<<2;
377
+ static const mask upper = 1<<3;
378
+ static const mask lower = 1<<4;
379
+ static const mask alpha = 1<<5;
380
+ static const mask digit = 1<<6;
381
+ static const mask punct = 1<<7;
382
+ static const mask xdigit = 1<<8;
383
+ static const mask blank = 1<<9;
384
+ #endif // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__
385
+ static const mask alnum = alpha | digit;
386
+ static const mask graph = alnum | punct;
387
+
388
+ _LIBCPP_ALWAYS_INLINE ctype_base() {}
389
+ };
390
+
391
+ template <class _CharT> class _LIBCPP_TYPE_VIS ctype;
392
+
393
+ template <>
394
+ class _LIBCPP_TYPE_VIS ctype<wchar_t>
395
+ : public locale::facet,
396
+ public ctype_base
397
+ {
398
+ public:
399
+ typedef wchar_t char_type;
400
+
401
+ _LIBCPP_ALWAYS_INLINE
402
+ explicit ctype(size_t __refs = 0)
403
+ : locale::facet(__refs) {}
404
+
405
+ _LIBCPP_ALWAYS_INLINE
406
+ bool is(mask __m, char_type __c) const
407
+ {
408
+ return do_is(__m, __c);
409
+ }
410
+
411
+ _LIBCPP_ALWAYS_INLINE
412
+ const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const
413
+ {
414
+ return do_is(__low, __high, __vec);
415
+ }
416
+
417
+ _LIBCPP_ALWAYS_INLINE
418
+ const char_type* scan_is(mask __m, const char_type* __low, const char_type* __high) const
419
+ {
420
+ return do_scan_is(__m, __low, __high);
421
+ }
422
+
423
+ _LIBCPP_ALWAYS_INLINE
424
+ const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const
425
+ {
426
+ return do_scan_not(__m, __low, __high);
427
+ }
428
+
429
+ _LIBCPP_ALWAYS_INLINE
430
+ char_type toupper(char_type __c) const
431
+ {
432
+ return do_toupper(__c);
433
+ }
434
+
435
+ _LIBCPP_ALWAYS_INLINE
436
+ const char_type* toupper(char_type* __low, const char_type* __high) const
437
+ {
438
+ return do_toupper(__low, __high);
439
+ }
440
+
441
+ _LIBCPP_ALWAYS_INLINE
442
+ char_type tolower(char_type __c) const
443
+ {
444
+ return do_tolower(__c);
445
+ }
446
+
447
+ _LIBCPP_ALWAYS_INLINE
448
+ const char_type* tolower(char_type* __low, const char_type* __high) const
449
+ {
450
+ return do_tolower(__low, __high);
451
+ }
452
+
453
+ _LIBCPP_ALWAYS_INLINE
454
+ char_type widen(char __c) const
455
+ {
456
+ return do_widen(__c);
457
+ }
458
+
459
+ _LIBCPP_ALWAYS_INLINE
460
+ const char* widen(const char* __low, const char* __high, char_type* __to) const
461
+ {
462
+ return do_widen(__low, __high, __to);
463
+ }
464
+
465
+ _LIBCPP_ALWAYS_INLINE
466
+ char narrow(char_type __c, char __dfault) const
467
+ {
468
+ return do_narrow(__c, __dfault);
469
+ }
470
+
471
+ _LIBCPP_ALWAYS_INLINE
472
+ const char_type* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const
473
+ {
474
+ return do_narrow(__low, __high, __dfault, __to);
475
+ }
476
+
477
+ static locale::id id;
478
+
479
+ protected:
480
+ ~ctype();
481
+ virtual bool do_is(mask __m, char_type __c) const;
482
+ virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const;
483
+ virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const;
484
+ virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const;
485
+ virtual char_type do_toupper(char_type) const;
486
+ virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;
487
+ virtual char_type do_tolower(char_type) const;
488
+ virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;
489
+ virtual char_type do_widen(char) const;
490
+ virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const;
491
+ virtual char do_narrow(char_type, char __dfault) const;
492
+ virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const;
493
+ };
494
+
495
+ template <>
496
+ class _LIBCPP_TYPE_VIS ctype<char>
497
+ : public locale::facet, public ctype_base
498
+ {
499
+ const mask* __tab_;
500
+ bool __del_;
501
+ public:
502
+ typedef char char_type;
503
+
504
+ explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0);
505
+
506
+ _LIBCPP_ALWAYS_INLINE
507
+ bool is(mask __m, char_type __c) const
508
+ {
509
+ return isascii(__c) ? __tab_[static_cast<int>(__c)] & __m : false;
510
+ }
511
+
512
+ _LIBCPP_ALWAYS_INLINE
513
+ const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const
514
+ {
515
+ for (; __low != __high; ++__low, ++__vec)
516
+ *__vec = isascii(*__low) ? __tab_[static_cast<int>(*__low)] : 0;
517
+ return __low;
518
+ }
519
+
520
+ _LIBCPP_ALWAYS_INLINE
521
+ const char_type* scan_is (mask __m, const char_type* __low, const char_type* __high) const
522
+ {
523
+ for (; __low != __high; ++__low)
524
+ if (isascii(*__low) && (__tab_[static_cast<int>(*__low)] & __m))
525
+ break;
526
+ return __low;
527
+ }
528
+
529
+ _LIBCPP_ALWAYS_INLINE
530
+ const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const
531
+ {
532
+ for (; __low != __high; ++__low)
533
+ if (!(isascii(*__low) && (__tab_[static_cast<int>(*__low)] & __m)))
534
+ break;
535
+ return __low;
536
+ }
537
+
538
+ _LIBCPP_ALWAYS_INLINE
539
+ char_type toupper(char_type __c) const
540
+ {
541
+ return do_toupper(__c);
542
+ }
543
+
544
+ _LIBCPP_ALWAYS_INLINE
545
+ const char_type* toupper(char_type* __low, const char_type* __high) const
546
+ {
547
+ return do_toupper(__low, __high);
548
+ }
549
+
550
+ _LIBCPP_ALWAYS_INLINE
551
+ char_type tolower(char_type __c) const
552
+ {
553
+ return do_tolower(__c);
554
+ }
555
+
556
+ _LIBCPP_ALWAYS_INLINE
557
+ const char_type* tolower(char_type* __low, const char_type* __high) const
558
+ {
559
+ return do_tolower(__low, __high);
560
+ }
561
+
562
+ _LIBCPP_ALWAYS_INLINE
563
+ char_type widen(char __c) const
564
+ {
565
+ return do_widen(__c);
566
+ }
567
+
568
+ _LIBCPP_ALWAYS_INLINE
569
+ const char* widen(const char* __low, const char* __high, char_type* __to) const
570
+ {
571
+ return do_widen(__low, __high, __to);
572
+ }
573
+
574
+ _LIBCPP_ALWAYS_INLINE
575
+ char narrow(char_type __c, char __dfault) const
576
+ {
577
+ return do_narrow(__c, __dfault);
578
+ }
579
+
580
+ _LIBCPP_ALWAYS_INLINE
581
+ const char* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const
582
+ {
583
+ return do_narrow(__low, __high, __dfault, __to);
584
+ }
585
+
586
+ static locale::id id;
587
+
588
+ #ifdef _CACHED_RUNES
589
+ static const size_t table_size = _CACHED_RUNES;
590
+ #else
591
+ static const size_t table_size = 256; // FIXME: Don't hardcode this.
592
+ #endif
593
+ _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;}
594
+ static const mask* classic_table() _NOEXCEPT;
595
+ #if defined(__GLIBC__) || defined(EMSCRIPTEN)
596
+ static const int* __classic_upper_table() _NOEXCEPT;
597
+ static const int* __classic_lower_table() _NOEXCEPT;
598
+ #endif
599
+
600
+ protected:
601
+ ~ctype();
602
+ virtual char_type do_toupper(char_type __c) const;
603
+ virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;
604
+ virtual char_type do_tolower(char_type __c) const;
605
+ virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;
606
+ virtual char_type do_widen(char __c) const;
607
+ virtual const char* do_widen(const char* __low, const char* __high, char_type* __to) const;
608
+ virtual char do_narrow(char_type __c, char __dfault) const;
609
+ virtual const char* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const;
610
+ };
611
+
612
+ // template <class CharT> class ctype_byname;
613
+
614
+ template <class _CharT> class _LIBCPP_TYPE_VIS ctype_byname;
615
+
616
+ template <>
617
+ class _LIBCPP_TYPE_VIS ctype_byname<char>
618
+ : public ctype<char>
619
+ {
620
+ locale_t __l;
621
+
622
+ public:
623
+ explicit ctype_byname(const char*, size_t = 0);
624
+ explicit ctype_byname(const string&, size_t = 0);
625
+
626
+ protected:
627
+ ~ctype_byname();
628
+ virtual char_type do_toupper(char_type) const;
629
+ virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;
630
+ virtual char_type do_tolower(char_type) const;
631
+ virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;
632
+ };
633
+
634
+ template <>
635
+ class _LIBCPP_TYPE_VIS ctype_byname<wchar_t>
636
+ : public ctype<wchar_t>
637
+ {
638
+ locale_t __l;
639
+
640
+ public:
641
+ explicit ctype_byname(const char*, size_t = 0);
642
+ explicit ctype_byname(const string&, size_t = 0);
643
+
644
+ protected:
645
+ ~ctype_byname();
646
+ virtual bool do_is(mask __m, char_type __c) const;
647
+ virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const;
648
+ virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const;
649
+ virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const;
650
+ virtual char_type do_toupper(char_type) const;
651
+ virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;
652
+ virtual char_type do_tolower(char_type) const;
653
+ virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;
654
+ virtual char_type do_widen(char) const;
655
+ virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const;
656
+ virtual char do_narrow(char_type, char __dfault) const;
657
+ virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const;
658
+ };
659
+
660
+ template <class _CharT>
661
+ inline _LIBCPP_INLINE_VISIBILITY
662
+ bool
663
+ isspace(_CharT __c, const locale& __loc)
664
+ {
665
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c);
666
+ }
667
+
668
+ template <class _CharT>
669
+ inline _LIBCPP_INLINE_VISIBILITY
670
+ bool
671
+ isprint(_CharT __c, const locale& __loc)
672
+ {
673
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c);
674
+ }
675
+
676
+ template <class _CharT>
677
+ inline _LIBCPP_INLINE_VISIBILITY
678
+ bool
679
+ iscntrl(_CharT __c, const locale& __loc)
680
+ {
681
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c);
682
+ }
683
+
684
+ template <class _CharT>
685
+ inline _LIBCPP_INLINE_VISIBILITY
686
+ bool
687
+ isupper(_CharT __c, const locale& __loc)
688
+ {
689
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c);
690
+ }
691
+
692
+ template <class _CharT>
693
+ inline _LIBCPP_INLINE_VISIBILITY
694
+ bool
695
+ islower(_CharT __c, const locale& __loc)
696
+ {
697
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c);
698
+ }
699
+
700
+ template <class _CharT>
701
+ inline _LIBCPP_INLINE_VISIBILITY
702
+ bool
703
+ isalpha(_CharT __c, const locale& __loc)
704
+ {
705
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c);
706
+ }
707
+
708
+ template <class _CharT>
709
+ inline _LIBCPP_INLINE_VISIBILITY
710
+ bool
711
+ isdigit(_CharT __c, const locale& __loc)
712
+ {
713
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c);
714
+ }
715
+
716
+ template <class _CharT>
717
+ inline _LIBCPP_INLINE_VISIBILITY
718
+ bool
719
+ ispunct(_CharT __c, const locale& __loc)
720
+ {
721
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c);
722
+ }
723
+
724
+ template <class _CharT>
725
+ inline _LIBCPP_INLINE_VISIBILITY
726
+ bool
727
+ isxdigit(_CharT __c, const locale& __loc)
728
+ {
729
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c);
730
+ }
731
+
732
+ template <class _CharT>
733
+ inline _LIBCPP_INLINE_VISIBILITY
734
+ bool
735
+ isalnum(_CharT __c, const locale& __loc)
736
+ {
737
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c);
738
+ }
739
+
740
+ template <class _CharT>
741
+ inline _LIBCPP_INLINE_VISIBILITY
742
+ bool
743
+ isgraph(_CharT __c, const locale& __loc)
744
+ {
745
+ return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c);
746
+ }
747
+
748
+ template <class _CharT>
749
+ inline _LIBCPP_INLINE_VISIBILITY
750
+ _CharT
751
+ toupper(_CharT __c, const locale& __loc)
752
+ {
753
+ return use_facet<ctype<_CharT> >(__loc).toupper(__c);
754
+ }
755
+
756
+ template <class _CharT>
757
+ inline _LIBCPP_INLINE_VISIBILITY
758
+ _CharT
759
+ tolower(_CharT __c, const locale& __loc)
760
+ {
761
+ return use_facet<ctype<_CharT> >(__loc).tolower(__c);
762
+ }
763
+
764
+ // codecvt_base
765
+
766
+ class _LIBCPP_TYPE_VIS codecvt_base
767
+ {
768
+ public:
769
+ _LIBCPP_ALWAYS_INLINE codecvt_base() {}
770
+ enum result {ok, partial, error, noconv};
771
+ };
772
+
773
+ // template <class internT, class externT, class stateT> class codecvt;
774
+
775
+ template <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TYPE_VIS codecvt;
776
+
777
+ // template <> class codecvt<char, char, mbstate_t>
778
+
779
+ template <>
780
+ class _LIBCPP_TYPE_VIS codecvt<char, char, mbstate_t>
781
+ : public locale::facet,
782
+ public codecvt_base
783
+ {
784
+ public:
785
+ typedef char intern_type;
786
+ typedef char extern_type;
787
+ typedef mbstate_t state_type;
788
+
789
+ _LIBCPP_ALWAYS_INLINE
790
+ explicit codecvt(size_t __refs = 0)
791
+ : locale::facet(__refs) {}
792
+
793
+ _LIBCPP_ALWAYS_INLINE
794
+ result out(state_type& __st,
795
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
796
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
797
+ {
798
+ return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
799
+ }
800
+
801
+ _LIBCPP_ALWAYS_INLINE
802
+ result unshift(state_type& __st,
803
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
804
+ {
805
+ return do_unshift(__st, __to, __to_end, __to_nxt);
806
+ }
807
+
808
+ _LIBCPP_ALWAYS_INLINE
809
+ result in(state_type& __st,
810
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
811
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const
812
+ {
813
+ return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
814
+ }
815
+
816
+ _LIBCPP_ALWAYS_INLINE
817
+ int encoding() const _NOEXCEPT
818
+ {
819
+ return do_encoding();
820
+ }
821
+
822
+ _LIBCPP_ALWAYS_INLINE
823
+ bool always_noconv() const _NOEXCEPT
824
+ {
825
+ return do_always_noconv();
826
+ }
827
+
828
+ _LIBCPP_ALWAYS_INLINE
829
+ int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const
830
+ {
831
+ return do_length(__st, __frm, __end, __mx);
832
+ }
833
+
834
+ _LIBCPP_ALWAYS_INLINE
835
+ int max_length() const _NOEXCEPT
836
+ {
837
+ return do_max_length();
838
+ }
839
+
840
+ static locale::id id;
841
+
842
+ protected:
843
+ _LIBCPP_ALWAYS_INLINE
844
+ explicit codecvt(const char*, size_t __refs = 0)
845
+ : locale::facet(__refs) {}
846
+
847
+ ~codecvt();
848
+
849
+ virtual result do_out(state_type& __st,
850
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
851
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
852
+ virtual result do_in(state_type& __st,
853
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
854
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
855
+ virtual result do_unshift(state_type& __st,
856
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
857
+ virtual int do_encoding() const _NOEXCEPT;
858
+ virtual bool do_always_noconv() const _NOEXCEPT;
859
+ virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const;
860
+ virtual int do_max_length() const _NOEXCEPT;
861
+ };
862
+
863
+ // template <> class codecvt<wchar_t, char, mbstate_t>
864
+
865
+ template <>
866
+ class _LIBCPP_TYPE_VIS codecvt<wchar_t, char, mbstate_t>
867
+ : public locale::facet,
868
+ public codecvt_base
869
+ {
870
+ locale_t __l;
871
+ public:
872
+ typedef wchar_t intern_type;
873
+ typedef char extern_type;
874
+ typedef mbstate_t state_type;
875
+
876
+ explicit codecvt(size_t __refs = 0);
877
+
878
+ _LIBCPP_ALWAYS_INLINE
879
+ result out(state_type& __st,
880
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
881
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
882
+ {
883
+ return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
884
+ }
885
+
886
+ _LIBCPP_ALWAYS_INLINE
887
+ result unshift(state_type& __st,
888
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
889
+ {
890
+ return do_unshift(__st, __to, __to_end, __to_nxt);
891
+ }
892
+
893
+ _LIBCPP_ALWAYS_INLINE
894
+ result in(state_type& __st,
895
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
896
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const
897
+ {
898
+ return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
899
+ }
900
+
901
+ _LIBCPP_ALWAYS_INLINE
902
+ int encoding() const _NOEXCEPT
903
+ {
904
+ return do_encoding();
905
+ }
906
+
907
+ _LIBCPP_ALWAYS_INLINE
908
+ bool always_noconv() const _NOEXCEPT
909
+ {
910
+ return do_always_noconv();
911
+ }
912
+
913
+ _LIBCPP_ALWAYS_INLINE
914
+ int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const
915
+ {
916
+ return do_length(__st, __frm, __end, __mx);
917
+ }
918
+
919
+ _LIBCPP_ALWAYS_INLINE
920
+ int max_length() const _NOEXCEPT
921
+ {
922
+ return do_max_length();
923
+ }
924
+
925
+ static locale::id id;
926
+
927
+ protected:
928
+ explicit codecvt(const char*, size_t __refs = 0);
929
+
930
+ ~codecvt();
931
+
932
+ virtual result do_out(state_type& __st,
933
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
934
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
935
+ virtual result do_in(state_type& __st,
936
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
937
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
938
+ virtual result do_unshift(state_type& __st,
939
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
940
+ virtual int do_encoding() const _NOEXCEPT;
941
+ virtual bool do_always_noconv() const _NOEXCEPT;
942
+ virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;
943
+ virtual int do_max_length() const _NOEXCEPT;
944
+ };
945
+
946
+ // template <> class codecvt<char16_t, char, mbstate_t>
947
+
948
+ template <>
949
+ class _LIBCPP_TYPE_VIS codecvt<char16_t, char, mbstate_t>
950
+ : public locale::facet,
951
+ public codecvt_base
952
+ {
953
+ public:
954
+ typedef char16_t intern_type;
955
+ typedef char extern_type;
956
+ typedef mbstate_t state_type;
957
+
958
+ _LIBCPP_ALWAYS_INLINE
959
+ explicit codecvt(size_t __refs = 0)
960
+ : locale::facet(__refs) {}
961
+
962
+ _LIBCPP_ALWAYS_INLINE
963
+ result out(state_type& __st,
964
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
965
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
966
+ {
967
+ return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
968
+ }
969
+
970
+ _LIBCPP_ALWAYS_INLINE
971
+ result unshift(state_type& __st,
972
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
973
+ {
974
+ return do_unshift(__st, __to, __to_end, __to_nxt);
975
+ }
976
+
977
+ _LIBCPP_ALWAYS_INLINE
978
+ result in(state_type& __st,
979
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
980
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const
981
+ {
982
+ return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
983
+ }
984
+
985
+ _LIBCPP_ALWAYS_INLINE
986
+ int encoding() const _NOEXCEPT
987
+ {
988
+ return do_encoding();
989
+ }
990
+
991
+ _LIBCPP_ALWAYS_INLINE
992
+ bool always_noconv() const _NOEXCEPT
993
+ {
994
+ return do_always_noconv();
995
+ }
996
+
997
+ _LIBCPP_ALWAYS_INLINE
998
+ int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const
999
+ {
1000
+ return do_length(__st, __frm, __end, __mx);
1001
+ }
1002
+
1003
+ _LIBCPP_ALWAYS_INLINE
1004
+ int max_length() const _NOEXCEPT
1005
+ {
1006
+ return do_max_length();
1007
+ }
1008
+
1009
+ static locale::id id;
1010
+
1011
+ protected:
1012
+ _LIBCPP_ALWAYS_INLINE
1013
+ explicit codecvt(const char*, size_t __refs = 0)
1014
+ : locale::facet(__refs) {}
1015
+
1016
+ ~codecvt();
1017
+
1018
+ virtual result do_out(state_type& __st,
1019
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
1020
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
1021
+ virtual result do_in(state_type& __st,
1022
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
1023
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
1024
+ virtual result do_unshift(state_type& __st,
1025
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
1026
+ virtual int do_encoding() const _NOEXCEPT;
1027
+ virtual bool do_always_noconv() const _NOEXCEPT;
1028
+ virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;
1029
+ virtual int do_max_length() const _NOEXCEPT;
1030
+ };
1031
+
1032
+ // template <> class codecvt<char32_t, char, mbstate_t>
1033
+
1034
+ template <>
1035
+ class _LIBCPP_TYPE_VIS codecvt<char32_t, char, mbstate_t>
1036
+ : public locale::facet,
1037
+ public codecvt_base
1038
+ {
1039
+ public:
1040
+ typedef char32_t intern_type;
1041
+ typedef char extern_type;
1042
+ typedef mbstate_t state_type;
1043
+
1044
+ _LIBCPP_ALWAYS_INLINE
1045
+ explicit codecvt(size_t __refs = 0)
1046
+ : locale::facet(__refs) {}
1047
+
1048
+ _LIBCPP_ALWAYS_INLINE
1049
+ result out(state_type& __st,
1050
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
1051
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
1052
+ {
1053
+ return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
1054
+ }
1055
+
1056
+ _LIBCPP_ALWAYS_INLINE
1057
+ result unshift(state_type& __st,
1058
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const
1059
+ {
1060
+ return do_unshift(__st, __to, __to_end, __to_nxt);
1061
+ }
1062
+
1063
+ _LIBCPP_ALWAYS_INLINE
1064
+ result in(state_type& __st,
1065
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
1066
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const
1067
+ {
1068
+ return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);
1069
+ }
1070
+
1071
+ _LIBCPP_ALWAYS_INLINE
1072
+ int encoding() const _NOEXCEPT
1073
+ {
1074
+ return do_encoding();
1075
+ }
1076
+
1077
+ _LIBCPP_ALWAYS_INLINE
1078
+ bool always_noconv() const _NOEXCEPT
1079
+ {
1080
+ return do_always_noconv();
1081
+ }
1082
+
1083
+ _LIBCPP_ALWAYS_INLINE
1084
+ int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const
1085
+ {
1086
+ return do_length(__st, __frm, __end, __mx);
1087
+ }
1088
+
1089
+ _LIBCPP_ALWAYS_INLINE
1090
+ int max_length() const _NOEXCEPT
1091
+ {
1092
+ return do_max_length();
1093
+ }
1094
+
1095
+ static locale::id id;
1096
+
1097
+ protected:
1098
+ _LIBCPP_ALWAYS_INLINE
1099
+ explicit codecvt(const char*, size_t __refs = 0)
1100
+ : locale::facet(__refs) {}
1101
+
1102
+ ~codecvt();
1103
+
1104
+ virtual result do_out(state_type& __st,
1105
+ const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
1106
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
1107
+ virtual result do_in(state_type& __st,
1108
+ const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
1109
+ intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
1110
+ virtual result do_unshift(state_type& __st,
1111
+ extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
1112
+ virtual int do_encoding() const _NOEXCEPT;
1113
+ virtual bool do_always_noconv() const _NOEXCEPT;
1114
+ virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;
1115
+ virtual int do_max_length() const _NOEXCEPT;
1116
+ };
1117
+
1118
+ // template <class _InternT, class _ExternT, class _StateT> class codecvt_byname
1119
+
1120
+ template <class _InternT, class _ExternT, class _StateT>
1121
+ class _LIBCPP_TYPE_VIS codecvt_byname
1122
+ : public codecvt<_InternT, _ExternT, _StateT>
1123
+ {
1124
+ public:
1125
+ _LIBCPP_ALWAYS_INLINE
1126
+ explicit codecvt_byname(const char* __nm, size_t __refs = 0)
1127
+ : codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {}
1128
+ _LIBCPP_ALWAYS_INLINE
1129
+ explicit codecvt_byname(const string& __nm, size_t __refs = 0)
1130
+ : codecvt<_InternT, _ExternT, _StateT>(__nm.c_str(), __refs) {}
1131
+ protected:
1132
+ ~codecvt_byname();
1133
+ };
1134
+
1135
+ template <class _InternT, class _ExternT, class _StateT>
1136
+ codecvt_byname<_InternT, _ExternT, _StateT>::~codecvt_byname()
1137
+ {
1138
+ }
1139
+
1140
+ _LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char, char, mbstate_t>)
1141
+ _LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<wchar_t, char, mbstate_t>)
1142
+ _LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char16_t, char, mbstate_t>)
1143
+ _LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char32_t, char, mbstate_t>)
1144
+
1145
+ _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*);
1146
+
1147
+ template <size_t _Np>
1148
+ struct __narrow_to_utf8
1149
+ {
1150
+ template <class _OutputIterator, class _CharT>
1151
+ _OutputIterator
1152
+ operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const;
1153
+ };
1154
+
1155
+ template <>
1156
+ struct __narrow_to_utf8<8>
1157
+ {
1158
+ template <class _OutputIterator, class _CharT>
1159
+ _LIBCPP_ALWAYS_INLINE
1160
+ _OutputIterator
1161
+ operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const
1162
+ {
1163
+ for (; __wb < __we; ++__wb, ++__s)
1164
+ *__s = *__wb;
1165
+ return __s;
1166
+ }
1167
+ };
1168
+
1169
+ template <>
1170
+ struct __narrow_to_utf8<16>
1171
+ : public codecvt<char16_t, char, mbstate_t>
1172
+ {
1173
+ _LIBCPP_ALWAYS_INLINE
1174
+ __narrow_to_utf8() : codecvt<char16_t, char, mbstate_t>(1) {}
1175
+
1176
+ ~__narrow_to_utf8();
1177
+
1178
+ template <class _OutputIterator, class _CharT>
1179
+ _LIBCPP_ALWAYS_INLINE
1180
+ _OutputIterator
1181
+ operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const
1182
+ {
1183
+ result __r = ok;
1184
+ mbstate_t __mb;
1185
+ while (__wb < __we && __r != error)
1186
+ {
1187
+ const int __sz = 32;
1188
+ char __buf[__sz];
1189
+ char* __bn;
1190
+ const char16_t* __wn = (const char16_t*)__wb;
1191
+ __r = do_out(__mb, (const char16_t*)__wb, (const char16_t*)__we, __wn,
1192
+ __buf, __buf+__sz, __bn);
1193
+ if (__r == codecvt_base::error || __wn == (const char16_t*)__wb)
1194
+ __throw_runtime_error("locale not supported");
1195
+ for (const char* __p = __buf; __p < __bn; ++__p, ++__s)
1196
+ *__s = *__p;
1197
+ __wb = (const _CharT*)__wn;
1198
+ }
1199
+ return __s;
1200
+ }
1201
+ };
1202
+
1203
+ template <>
1204
+ struct __narrow_to_utf8<32>
1205
+ : public codecvt<char32_t, char, mbstate_t>
1206
+ {
1207
+ _LIBCPP_ALWAYS_INLINE
1208
+ __narrow_to_utf8() : codecvt<char32_t, char, mbstate_t>(1) {}
1209
+
1210
+ ~__narrow_to_utf8();
1211
+
1212
+ template <class _OutputIterator, class _CharT>
1213
+ _LIBCPP_ALWAYS_INLINE
1214
+ _OutputIterator
1215
+ operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const
1216
+ {
1217
+ result __r = ok;
1218
+ mbstate_t __mb;
1219
+ while (__wb < __we && __r != error)
1220
+ {
1221
+ const int __sz = 32;
1222
+ char __buf[__sz];
1223
+ char* __bn;
1224
+ const char32_t* __wn = (const char32_t*)__wb;
1225
+ __r = do_out(__mb, (const char32_t*)__wb, (const char32_t*)__we, __wn,
1226
+ __buf, __buf+__sz, __bn);
1227
+ if (__r == codecvt_base::error || __wn == (const char32_t*)__wb)
1228
+ __throw_runtime_error("locale not supported");
1229
+ for (const char* __p = __buf; __p < __bn; ++__p, ++__s)
1230
+ *__s = *__p;
1231
+ __wb = (const _CharT*)__wn;
1232
+ }
1233
+ return __s;
1234
+ }
1235
+ };
1236
+
1237
+ template <size_t _Np>
1238
+ struct __widen_from_utf8
1239
+ {
1240
+ template <class _OutputIterator>
1241
+ _OutputIterator
1242
+ operator()(_OutputIterator __s, const char* __nb, const char* __ne) const;
1243
+ };
1244
+
1245
+ template <>
1246
+ struct __widen_from_utf8<8>
1247
+ {
1248
+ template <class _OutputIterator>
1249
+ _LIBCPP_ALWAYS_INLINE
1250
+ _OutputIterator
1251
+ operator()(_OutputIterator __s, const char* __nb, const char* __ne) const
1252
+ {
1253
+ for (; __nb < __ne; ++__nb, ++__s)
1254
+ *__s = *__nb;
1255
+ return __s;
1256
+ }
1257
+ };
1258
+
1259
+ template <>
1260
+ struct __widen_from_utf8<16>
1261
+ : public codecvt<char16_t, char, mbstate_t>
1262
+ {
1263
+ _LIBCPP_ALWAYS_INLINE
1264
+ __widen_from_utf8() : codecvt<char16_t, char, mbstate_t>(1) {}
1265
+
1266
+ ~__widen_from_utf8();
1267
+
1268
+ template <class _OutputIterator>
1269
+ _LIBCPP_ALWAYS_INLINE
1270
+ _OutputIterator
1271
+ operator()(_OutputIterator __s, const char* __nb, const char* __ne) const
1272
+ {
1273
+ result __r = ok;
1274
+ mbstate_t __mb;
1275
+ while (__nb < __ne && __r != error)
1276
+ {
1277
+ const int __sz = 32;
1278
+ char16_t __buf[__sz];
1279
+ char16_t* __bn;
1280
+ const char* __nn = __nb;
1281
+ __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn,
1282
+ __buf, __buf+__sz, __bn);
1283
+ if (__r == codecvt_base::error || __nn == __nb)
1284
+ __throw_runtime_error("locale not supported");
1285
+ for (const char16_t* __p = __buf; __p < __bn; ++__p, ++__s)
1286
+ *__s = (wchar_t)*__p;
1287
+ __nb = __nn;
1288
+ }
1289
+ return __s;
1290
+ }
1291
+ };
1292
+
1293
+ template <>
1294
+ struct __widen_from_utf8<32>
1295
+ : public codecvt<char32_t, char, mbstate_t>
1296
+ {
1297
+ _LIBCPP_ALWAYS_INLINE
1298
+ __widen_from_utf8() : codecvt<char32_t, char, mbstate_t>(1) {}
1299
+
1300
+ ~__widen_from_utf8();
1301
+
1302
+ template <class _OutputIterator>
1303
+ _LIBCPP_ALWAYS_INLINE
1304
+ _OutputIterator
1305
+ operator()(_OutputIterator __s, const char* __nb, const char* __ne) const
1306
+ {
1307
+ result __r = ok;
1308
+ mbstate_t __mb;
1309
+ while (__nb < __ne && __r != error)
1310
+ {
1311
+ const int __sz = 32;
1312
+ char32_t __buf[__sz];
1313
+ char32_t* __bn;
1314
+ const char* __nn = __nb;
1315
+ __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn,
1316
+ __buf, __buf+__sz, __bn);
1317
+ if (__r == codecvt_base::error || __nn == __nb)
1318
+ __throw_runtime_error("locale not supported");
1319
+ for (const char32_t* __p = __buf; __p < __bn; ++__p, ++__s)
1320
+ *__s = (wchar_t)*__p;
1321
+ __nb = __nn;
1322
+ }
1323
+ return __s;
1324
+ }
1325
+ };
1326
+
1327
+ // template <class charT> class numpunct
1328
+
1329
+ template <class _CharT> class _LIBCPP_TYPE_VIS numpunct;
1330
+
1331
+ template <>
1332
+ class _LIBCPP_TYPE_VIS numpunct<char>
1333
+ : public locale::facet
1334
+ {
1335
+ public:
1336
+ typedef char char_type;
1337
+ typedef basic_string<char_type> string_type;
1338
+
1339
+ explicit numpunct(size_t __refs = 0);
1340
+
1341
+ _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();}
1342
+ _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();}
1343
+ _LIBCPP_ALWAYS_INLINE string grouping() const {return do_grouping();}
1344
+ _LIBCPP_ALWAYS_INLINE string_type truename() const {return do_truename();}
1345
+ _LIBCPP_ALWAYS_INLINE string_type falsename() const {return do_falsename();}
1346
+
1347
+ static locale::id id;
1348
+
1349
+ protected:
1350
+ ~numpunct();
1351
+ virtual char_type do_decimal_point() const;
1352
+ virtual char_type do_thousands_sep() const;
1353
+ virtual string do_grouping() const;
1354
+ virtual string_type do_truename() const;
1355
+ virtual string_type do_falsename() const;
1356
+
1357
+ char_type __decimal_point_;
1358
+ char_type __thousands_sep_;
1359
+ string __grouping_;
1360
+ };
1361
+
1362
+ template <>
1363
+ class _LIBCPP_TYPE_VIS numpunct<wchar_t>
1364
+ : public locale::facet
1365
+ {
1366
+ public:
1367
+ typedef wchar_t char_type;
1368
+ typedef basic_string<char_type> string_type;
1369
+
1370
+ explicit numpunct(size_t __refs = 0);
1371
+
1372
+ _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();}
1373
+ _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();}
1374
+ _LIBCPP_ALWAYS_INLINE string grouping() const {return do_grouping();}
1375
+ _LIBCPP_ALWAYS_INLINE string_type truename() const {return do_truename();}
1376
+ _LIBCPP_ALWAYS_INLINE string_type falsename() const {return do_falsename();}
1377
+
1378
+ static locale::id id;
1379
+
1380
+ protected:
1381
+ ~numpunct();
1382
+ virtual char_type do_decimal_point() const;
1383
+ virtual char_type do_thousands_sep() const;
1384
+ virtual string do_grouping() const;
1385
+ virtual string_type do_truename() const;
1386
+ virtual string_type do_falsename() const;
1387
+
1388
+ char_type __decimal_point_;
1389
+ char_type __thousands_sep_;
1390
+ string __grouping_;
1391
+ };
1392
+
1393
+ // template <class charT> class numpunct_byname
1394
+
1395
+ template <class charT> class _LIBCPP_TYPE_VIS numpunct_byname;
1396
+
1397
+ template <>
1398
+ class _LIBCPP_TYPE_VIS numpunct_byname<char>
1399
+ : public numpunct<char>
1400
+ {
1401
+ public:
1402
+ typedef char char_type;
1403
+ typedef basic_string<char_type> string_type;
1404
+
1405
+ explicit numpunct_byname(const char* __nm, size_t __refs = 0);
1406
+ explicit numpunct_byname(const string& __nm, size_t __refs = 0);
1407
+
1408
+ protected:
1409
+ ~numpunct_byname();
1410
+
1411
+ private:
1412
+ void __init(const char*);
1413
+ };
1414
+
1415
+ template <>
1416
+ class _LIBCPP_TYPE_VIS numpunct_byname<wchar_t>
1417
+ : public numpunct<wchar_t>
1418
+ {
1419
+ public:
1420
+ typedef wchar_t char_type;
1421
+ typedef basic_string<char_type> string_type;
1422
+
1423
+ explicit numpunct_byname(const char* __nm, size_t __refs = 0);
1424
+ explicit numpunct_byname(const string& __nm, size_t __refs = 0);
1425
+
1426
+ protected:
1427
+ ~numpunct_byname();
1428
+
1429
+ private:
1430
+ void __init(const char*);
1431
+ };
1432
+
1433
+ _LIBCPP_END_NAMESPACE_STD
1434
+
1435
+ #endif // _LIBCPP___LOCALE