esruby 0.0.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 (763) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +22 -0
  4. data/bin/esruby +34 -0
  5. data/lib/esruby.rb +26 -0
  6. data/lib/esruby/build.rb +140 -0
  7. data/lib/esruby/build/configuration.rb +77 -0
  8. data/lib/esruby/gem.rb +5 -0
  9. data/lib/esruby/gem/specification.rb +35 -0
  10. data/resources/build_config.eruby +53 -0
  11. data/resources/cpp/esruby.cpp +64 -0
  12. data/resources/cpp/esruby.hpp +42 -0
  13. data/resources/cpp/main.cpp +9 -0
  14. data/resources/js/esruby.js +45 -0
  15. data/resources/mruby/AUTHORS +40 -0
  16. data/resources/mruby/CONTRIBUTING.md +68 -0
  17. data/resources/mruby/LEGAL +6 -0
  18. data/resources/mruby/MITL +20 -0
  19. data/resources/mruby/Makefile +17 -0
  20. data/resources/mruby/NEWS +13 -0
  21. data/resources/mruby/README.md +92 -0
  22. data/resources/mruby/Rakefile +152 -0
  23. data/resources/mruby/TODO +10 -0
  24. data/resources/mruby/appveyor.yml +38 -0
  25. data/resources/mruby/appveyor_config.rb +50 -0
  26. data/resources/mruby/benchmark/bm_ao_render.rb +314 -0
  27. data/resources/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  28. data/resources/mruby/benchmark/bm_fib.rb +7 -0
  29. data/resources/mruby/benchmark/bm_so_lists.rb +47 -0
  30. data/resources/mruby/benchmark/build_config_boxing.rb +28 -0
  31. data/resources/mruby/benchmark/build_config_cc.rb +13 -0
  32. data/resources/mruby/benchmark/plot.gpl +5 -0
  33. data/resources/mruby/bin/mirb +0 -0
  34. data/resources/mruby/bin/mrbc +0 -0
  35. data/resources/mruby/bin/mruby +0 -0
  36. data/resources/mruby/bin/mruby-strip +0 -0
  37. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/README.md +82 -0
  38. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrbgem.rake +63 -0
  39. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/regexp_pcre.rb +232 -0
  40. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/string_pcre.rb +333 -0
  41. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/132html +313 -0
  42. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/AUTHORS +45 -0
  43. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CMakeLists.txt +959 -0
  44. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/COPYING +5 -0
  45. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ChangeLog +4981 -0
  46. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CheckMan +67 -0
  47. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CleanTxt +113 -0
  48. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Detrail +35 -0
  49. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/HACKING +473 -0
  50. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/INSTALL +370 -0
  51. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/LICENCE +92 -0
  52. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.am +877 -0
  53. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.in +2917 -0
  54. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NEWS +611 -0
  55. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-AUTOTOOLS-BUILD +639 -0
  56. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-UNIX-USE +7 -0
  57. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/PrepareRelease +253 -0
  58. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/README +935 -0
  59. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunGrepTest +551 -0
  60. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest +1015 -0
  61. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest.bat +616 -0
  62. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/aclocal.m4 +1230 -0
  63. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.0 +21280 -0
  64. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.1 +21280 -0
  65. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/requests +273 -0
  66. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.0 +2421 -0
  67. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.1 +1144 -0
  68. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  69. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindEditline.cmake +17 -0
  70. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  71. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindReadline.cmake +29 -0
  72. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/compile +343 -0
  73. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config-cmake.h.in +54 -0
  74. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.guess +1552 -0
  75. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h +392 -0
  76. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.generic +392 -0
  77. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.in +343 -0
  78. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.sub +1804 -0
  79. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure +21280 -0
  80. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure.ac +1082 -0
  81. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/depcomp +708 -0
  82. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/dftables.c +212 -0
  83. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/index.html +180 -0
  84. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre-config.html +109 -0
  85. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre.html +204 -0
  86. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre16.html +383 -0
  87. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_assign_jit_stack.html +76 -0
  88. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile.html +108 -0
  89. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile2.html +112 -0
  90. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_config.html +91 -0
  91. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_named_substring.html +65 -0
  92. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_substring.html +61 -0
  93. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_dfa_exec.html +128 -0
  94. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_exec.html +110 -0
  95. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_study.html +46 -0
  96. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring.html +46 -0
  97. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring_list.html +46 -0
  98. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_fullinfo.html +108 -0
  99. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_named_substring.html +68 -0
  100. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringnumber.html +57 -0
  101. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringtable_entries.html +60 -0
  102. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring.html +64 -0
  103. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring_list.html +61 -0
  104. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_exec.html +108 -0
  105. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_alloc.html +55 -0
  106. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_free.html +48 -0
  107. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_maketables.html +48 -0
  108. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_pattern_to_host_byte_order.html +58 -0
  109. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_refcount.html +51 -0
  110. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_study.html +68 -0
  111. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_utf16_to_host_byte_order.html +57 -0
  112. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_version.html +46 -0
  113. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreapi.html +2786 -0
  114. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrebuild.html +517 -0
  115. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecallout.html +243 -0
  116. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecompat.html +216 -0
  117. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecpp.html +368 -0
  118. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcredemo.html +426 -0
  119. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcregrep.html +757 -0
  120. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrejit.html +458 -0
  121. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrelimits.html +86 -0
  122. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrematching.html +233 -0
  123. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepartial.html +474 -0
  124. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepattern.html +2953 -0
  125. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreperform.html +195 -0
  126. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreposix.html +292 -0
  127. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreprecompile.html +158 -0
  128. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresample.html +110 -0
  129. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrestack.html +225 -0
  130. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresyntax.html +521 -0
  131. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcretest.html +1082 -0
  132. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreunicode.html +270 -0
  133. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/index.html.src +180 -0
  134. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.1 +92 -0
  135. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.txt +86 -0
  136. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.3 +202 -0
  137. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.txt +9909 -0
  138. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre16.3 +390 -0
  139. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre32.3 +389 -0
  140. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_assign_jit_stack.3 +61 -0
  141. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile.3 +98 -0
  142. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile2.3 +106 -0
  143. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_config.3 +76 -0
  144. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_named_substring.3 +59 -0
  145. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_substring.3 +52 -0
  146. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_dfa_exec.3 +125 -0
  147. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_exec.3 +103 -0
  148. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_study.3 +31 -0
  149. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring.3 +31 -0
  150. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring_list.3 +31 -0
  151. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_fullinfo.3 +95 -0
  152. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_named_substring.3 +62 -0
  153. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringnumber.3 +45 -0
  154. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringtable_entries.3 +48 -0
  155. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring.3 +55 -0
  156. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring_list.3 +49 -0
  157. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_exec.3 +104 -0
  158. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_alloc.3 +45 -0
  159. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_free.3 +35 -0
  160. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_maketables.3 +33 -0
  161. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_pattern_to_host_byte_order.3 +46 -0
  162. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_refcount.3 +36 -0
  163. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_study.3 +56 -0
  164. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf16_to_host_byte_order.3 +46 -0
  165. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf32_to_host_byte_order.3 +46 -0
  166. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_version.3 +31 -0
  167. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreapi.3 +2823 -0
  168. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrebuild.3 +520 -0
  169. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecallout.3 +214 -0
  170. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecompat.3 +185 -0
  171. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecpp.3 +348 -0
  172. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.1 +679 -0
  173. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.txt +740 -0
  174. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrejit.3 +437 -0
  175. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrelimits.3 +67 -0
  176. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrematching.3 +206 -0
  177. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepartial.3 +445 -0
  178. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepattern.3 +2983 -0
  179. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreperform.3 +177 -0
  180. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreposix.3 +270 -0
  181. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreprecompile.3 +151 -0
  182. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresample.3 +99 -0
  183. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrestack.3 +215 -0
  184. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresyntax.3 +496 -0
  185. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.1 +1079 -0
  186. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.txt +1012 -0
  187. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreunicode.3 +255 -0
  188. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/perltest.txt +42 -0
  189. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/install-sh +527 -0
  190. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre.pc.in +12 -0
  191. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre16.pc.in +12 -0
  192. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre32.pc.in +12 -0
  193. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcrecpp.pc.in +12 -0
  194. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcreposix.pc.in +13 -0
  195. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ltmain.sh +9636 -0
  196. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ax_pthread.m4 +309 -0
  197. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/libtool.m4 +7844 -0
  198. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltoptions.m4 +369 -0
  199. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltsugar.m4 +123 -0
  200. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltversion.m4 +23 -0
  201. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/lt~obsolete.m4 +98 -0
  202. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/pcre_visibility.m4 +89 -0
  203. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp.bat +66 -0
  204. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_c.txt +20 -0
  205. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_l.txt +20 -0
  206. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/missing +331 -0
  207. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre-config.in +133 -0
  208. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h +653 -0
  209. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.generic +653 -0
  210. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.in +653 -0
  211. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_byte_order.c +45 -0
  212. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_chartables.c +45 -0
  213. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_compile.c +45 -0
  214. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_config.c +45 -0
  215. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_dfa_exec.c +45 -0
  216. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_exec.c +45 -0
  217. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_fullinfo.c +45 -0
  218. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_get.c +45 -0
  219. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_globals.c +45 -0
  220. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_jit_compile.c +45 -0
  221. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_maketables.c +45 -0
  222. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_newline.c +45 -0
  223. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ord2utf16.c +90 -0
  224. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_printint.c +45 -0
  225. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_refcount.c +45 -0
  226. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_string_utils.c +45 -0
  227. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_study.c +45 -0
  228. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_tables.c +45 -0
  229. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ucd.c +45 -0
  230. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_utf16_utils.c +130 -0
  231. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_valid_utf16.c +156 -0
  232. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_version.c +45 -0
  233. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_xclass.c +45 -0
  234. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_byte_order.c +45 -0
  235. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_chartables.c +45 -0
  236. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_compile.c +45 -0
  237. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_config.c +45 -0
  238. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_dfa_exec.c +45 -0
  239. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_exec.c +45 -0
  240. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_fullinfo.c +45 -0
  241. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_get.c +45 -0
  242. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_globals.c +45 -0
  243. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_jit_compile.c +45 -0
  244. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_maketables.c +45 -0
  245. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_newline.c +45 -0
  246. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ord2utf32.c +82 -0
  247. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_printint.c +45 -0
  248. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_refcount.c +45 -0
  249. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_string_utils.c +45 -0
  250. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_study.c +45 -0
  251. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_tables.c +45 -0
  252. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ucd.c +45 -0
  253. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_utf32_utils.c +141 -0
  254. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_valid_utf32.c +131 -0
  255. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_version.c +45 -0
  256. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_xclass.c +45 -0
  257. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_byte_order.c +318 -0
  258. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c +198 -0
  259. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c.dist +198 -0
  260. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_compile.c +8386 -0
  261. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_config.c +186 -0
  262. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_dfa_exec.c +3582 -0
  263. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_exec.c +7049 -0
  264. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_fullinfo.c +231 -0
  265. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_get.c +662 -0
  266. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_globals.c +84 -0
  267. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_internal.h +2744 -0
  268. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_compile.c +8560 -0
  269. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_test.c +1614 -0
  270. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_maketables.c +151 -0
  271. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_newline.c +210 -0
  272. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ord2utf8.c +94 -0
  273. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_printint.c +766 -0
  274. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_refcount.c +92 -0
  275. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.cc +199 -0
  276. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.h +172 -0
  277. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner_unittest.cc +159 -0
  278. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_string_utils.c +211 -0
  279. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.cc +43 -0
  280. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.h.in +179 -0
  281. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece_unittest.cc +150 -0
  282. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_study.c +1562 -0
  283. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_tables.c +655 -0
  284. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ucd.c +3298 -0
  285. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_valid_utf8.c +312 -0
  286. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_version.c +98 -0
  287. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_xclass.c +198 -0
  288. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.cc +922 -0
  289. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.h +710 -0
  290. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_internal.h +71 -0
  291. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_unittest.cc +1291 -0
  292. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpparg.h.in +174 -0
  293. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcredemo.c +406 -0
  294. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregexp.pas +845 -0
  295. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregrep.c +3180 -0
  296. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.c +419 -0
  297. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.h +146 -0
  298. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcretest.c +5488 -0
  299. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/perltest.pl +237 -0
  300. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfig.h +110 -0
  301. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfigInternal.h +484 -0
  302. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitExecAllocator.c +289 -0
  303. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.c +1766 -0
  304. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.h +985 -0
  305. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_Thumb2.c +2008 -0
  306. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_v5.c +2515 -0
  307. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_32.c +404 -0
  308. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_common.c +1881 -0
  309. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_32.c +269 -0
  310. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_64.c +421 -0
  311. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_common.c +2014 -0
  312. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_32.c +164 -0
  313. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_common.c +1348 -0
  314. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_32.c +547 -0
  315. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_64.c +810 -0
  316. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_common.c +2836 -0
  317. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitUtils.c +332 -0
  318. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepbinary +0 -0
  319. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepfilelist +3 -0
  320. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput +611 -0
  321. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput3 +15 -0
  322. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput8 +11 -0
  323. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputv +4 -0
  324. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputx +43 -0
  325. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greplist +7 -0
  326. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput +707 -0
  327. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput8 +12 -0
  328. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutputN +16 -1
  329. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greppatN4 +2 -0
  330. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16 +0 -0
  331. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-1 +0 -0
  332. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-2 +0 -0
  333. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-1 +0 -0
  334. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-2 +0 -0
  335. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32 +0 -0
  336. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-1 +0 -0
  337. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-2 +0 -0
  338. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-1 +0 -0
  339. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-2 +0 -0
  340. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved8 +0 -0
  341. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput1 +5306 -0
  342. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput10 +1337 -0
  343. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput11 +135 -0
  344. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput12 +89 -0
  345. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput13 +9 -0
  346. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput14 +329 -0
  347. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput15 +430 -0
  348. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput16 +35 -0
  349. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput17 +296 -0
  350. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput18 +296 -0
  351. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput19 +22 -0
  352. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput2 +3813 -0
  353. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput20 +19 -0
  354. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput21 +16 -0
  355. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput22 +13 -0
  356. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput23 +16 -0
  357. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput24 +77 -0
  358. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput25 +32 -0
  359. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput26 +80 -0
  360. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput3 +95 -0
  361. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput4 +624 -0
  362. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput5 +772 -0
  363. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput6 +1319 -0
  364. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput7 +672 -0
  365. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput8 +4801 -0
  366. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput9 +717 -0
  367. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinputEBC +121 -0
  368. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput1 +8798 -0
  369. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput10 +2726 -0
  370. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-16 +713 -0
  371. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-32 +713 -0
  372. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-8 +713 -0
  373. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput12 +181 -0
  374. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput13 +21 -0
  375. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput14 +476 -0
  376. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput15 +1269 -0
  377. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput16 +121 -0
  378. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput17 +505 -0
  379. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-16 +1022 -0
  380. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-32 +1019 -0
  381. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput19 +88 -0
  382. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput2 +12484 -0
  383. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput20 +27 -0
  384. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-16 +90 -0
  385. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-32 +90 -0
  386. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-16 +71 -0
  387. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-32 +71 -0
  388. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput23 +42 -0
  389. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput24 +145 -0
  390. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput25 +79 -0
  391. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput26 +148 -0
  392. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput3 +169 -0
  393. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput4 +1094 -0
  394. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput5 +1849 -0
  395. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput6 +2137 -0
  396. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput7 +1473 -0
  397. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput8 +8019 -0
  398. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput9 +1371 -0
  399. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutputEBC +182 -0
  400. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestinput3 +91 -0
  401. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestoutput3 +166 -0
  402. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ucp.h +197 -0
  403. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/run_test.rb +23 -0
  404. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/src/mruby_regexp_pcre.c +364 -0
  405. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/matchdata.rb +94 -0
  406. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/regexp.rb +264 -0
  407. data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/string.rb +201 -0
  408. data/resources/mruby/build_config.rb +152 -0
  409. data/resources/mruby/doc/guides/compile.md +488 -0
  410. data/resources/mruby/doc/guides/debugger.md +370 -0
  411. data/resources/mruby/doc/guides/gc-arena-howto.md +177 -0
  412. data/resources/mruby/doc/guides/mrbconf.md +146 -0
  413. data/resources/mruby/doc/guides/mrbgems.md +340 -0
  414. data/resources/mruby/doc/limitations.md +187 -0
  415. data/resources/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  416. data/resources/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  417. data/resources/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  418. data/resources/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  419. data/resources/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  420. data/resources/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  421. data/resources/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  422. data/resources/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  423. data/resources/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  424. data/resources/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  425. data/resources/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  426. data/resources/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +25 -0
  427. data/resources/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  428. data/resources/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  429. data/resources/mruby/examples/targets/build_config_ArduinoDue.rb +90 -0
  430. data/resources/mruby/examples/targets/build_config_IntelEdison.rb +69 -0
  431. data/resources/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  432. data/resources/mruby/examples/targets/build_config_RX630.rb +81 -0
  433. data/resources/mruby/examples/targets/build_config_android_arm64-v8a.rb +26 -0
  434. data/resources/mruby/examples/targets/build_config_android_armeabi.rb +26 -0
  435. data/resources/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb +28 -0
  436. data/resources/mruby/examples/targets/build_config_chipKITMax32.rb +86 -0
  437. data/resources/mruby/include/mrbconf.h +145 -0
  438. data/resources/mruby/include/mruby.h +1280 -0
  439. data/resources/mruby/include/mruby/array.h +279 -0
  440. data/resources/mruby/include/mruby/boxing_nan.h +102 -0
  441. data/resources/mruby/include/mruby/boxing_no.h +56 -0
  442. data/resources/mruby/include/mruby/boxing_word.h +136 -0
  443. data/resources/mruby/include/mruby/class.h +94 -0
  444. data/resources/mruby/include/mruby/common.h +72 -0
  445. data/resources/mruby/include/mruby/compile.h +194 -0
  446. data/resources/mruby/include/mruby/data.h +75 -0
  447. data/resources/mruby/include/mruby/debug.h +66 -0
  448. data/resources/mruby/include/mruby/dump.h +196 -0
  449. data/resources/mruby/include/mruby/error.h +75 -0
  450. data/resources/mruby/include/mruby/gc.h +91 -0
  451. data/resources/mruby/include/mruby/hash.h +182 -0
  452. data/resources/mruby/include/mruby/irep.h +62 -0
  453. data/resources/mruby/include/mruby/istruct.h +47 -0
  454. data/resources/mruby/include/mruby/khash.h +274 -0
  455. data/resources/mruby/include/mruby/numeric.h +161 -0
  456. data/resources/mruby/include/mruby/object.h +45 -0
  457. data/resources/mruby/include/mruby/opcode.h +161 -0
  458. data/resources/mruby/include/mruby/proc.h +131 -0
  459. data/resources/mruby/include/mruby/range.h +49 -0
  460. data/resources/mruby/include/mruby/re.h +16 -0
  461. data/resources/mruby/include/mruby/string.h +440 -0
  462. data/resources/mruby/include/mruby/throw.h +55 -0
  463. data/resources/mruby/include/mruby/value.h +309 -0
  464. data/resources/mruby/include/mruby/variable.h +138 -0
  465. data/resources/mruby/include/mruby/version.h +110 -0
  466. data/resources/mruby/lib/mruby-core-ext.rb +79 -0
  467. data/resources/mruby/lib/mruby/build.rb +355 -0
  468. data/resources/mruby/lib/mruby/build/command.rb +324 -0
  469. data/resources/mruby/lib/mruby/build/load_gems.rb +122 -0
  470. data/resources/mruby/lib/mruby/gem.rb +459 -0
  471. data/resources/mruby/lib/mruby/source.rb +30 -0
  472. data/resources/mruby/minirake +484 -0
  473. data/resources/mruby/mrbgems/default.gembox +82 -0
  474. data/resources/mruby/mrbgems/full-core.gembox +9 -0
  475. data/resources/mruby/mrbgems/mruby-array-ext/mrbgem.rake +6 -0
  476. data/resources/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +935 -0
  477. data/resources/mruby/mrbgems/mruby-array-ext/src/array.c +246 -0
  478. data/resources/mruby/mrbgems/mruby-array-ext/test/array.rb +422 -0
  479. data/resources/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  480. data/resources/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  481. data/resources/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  482. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +505 -0
  483. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  484. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +240 -0
  485. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  486. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  487. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  488. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +436 -0
  489. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +502 -0
  490. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  491. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +64 -0
  492. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +759 -0
  493. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +165 -0
  494. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  495. data/resources/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  496. data/resources/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  497. data/resources/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +33 -0
  498. data/resources/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +611 -0
  499. data/resources/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +16 -0
  500. data/resources/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +336 -0
  501. data/resources/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  502. data/resources/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +20 -0
  503. data/resources/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +42 -0
  504. data/resources/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +60 -0
  505. data/resources/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +12 -0
  506. data/resources/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +254 -0
  507. data/resources/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  508. data/resources/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  509. data/resources/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  510. data/resources/mruby/mrbgems/mruby-class-ext/mrbgem.rake +5 -0
  511. data/resources/mruby/mrbgems/mruby-class-ext/src/class.c +68 -0
  512. data/resources/mruby/mrbgems/mruby-class-ext/test/module.rb +55 -0
  513. data/resources/mruby/mrbgems/mruby-compar-ext/mrbgem.rake +5 -0
  514. data/resources/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb +31 -0
  515. data/resources/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb +30 -0
  516. data/resources/mruby/mrbgems/mruby-compiler/core/codegen.c +3083 -0
  517. data/resources/mruby/mrbgems/mruby-compiler/core/keywords +50 -0
  518. data/resources/mruby/mrbgems/mruby-compiler/core/lex.def +211 -0
  519. data/resources/mruby/mrbgems/mruby-compiler/core/node.h +118 -0
  520. data/resources/mruby/mrbgems/mruby-compiler/core/parse.y +6661 -0
  521. data/resources/mruby/mrbgems/mruby-compiler/mrbgem.rake +40 -0
  522. data/resources/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +5 -0
  523. data/resources/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +813 -0
  524. data/resources/mruby/mrbgems/mruby-enum-ext/test/enum.rb +185 -0
  525. data/resources/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  526. data/resources/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +178 -0
  527. data/resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +53 -0
  528. data/resources/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  529. data/resources/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +645 -0
  530. data/resources/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +546 -0
  531. data/resources/mruby/mrbgems/mruby-error/mrbgem.rake +10 -0
  532. data/resources/mruby/mrbgems/mruby-error/src/exception.c +100 -0
  533. data/resources/mruby/mrbgems/mruby-error/test/exception.c +59 -0
  534. data/resources/mruby/mrbgems/mruby-error/test/exception.rb +55 -0
  535. data/resources/mruby/mrbgems/mruby-eval/mrbgem.rake +7 -0
  536. data/resources/mruby/mrbgems/mruby-eval/src/eval.c +346 -0
  537. data/resources/mruby/mrbgems/mruby-eval/test/eval.rb +101 -0
  538. data/resources/mruby/mrbgems/mruby-exit/mrbgem.rake +5 -0
  539. data/resources/mruby/mrbgems/mruby-exit/src/mruby-exit.c +24 -0
  540. data/resources/mruby/mrbgems/mruby-fiber/mrbgem.rake +5 -0
  541. data/resources/mruby/mrbgems/mruby-fiber/src/fiber.c +420 -0
  542. data/resources/mruby/mrbgems/mruby-fiber/test/fiber.rb +208 -0
  543. data/resources/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +8 -0
  544. data/resources/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +502 -0
  545. data/resources/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +128 -0
  546. data/resources/mruby/mrbgems/mruby-hash-ext/test/hash.rb +300 -0
  547. data/resources/mruby/mrbgems/mruby-inline-struct/mrbgem.rake +5 -0
  548. data/resources/mruby/mrbgems/mruby-inline-struct/test/inline.c +83 -0
  549. data/resources/mruby/mrbgems/mruby-inline-struct/test/inline.rb +151 -0
  550. data/resources/mruby/mrbgems/mruby-io/README.md +193 -0
  551. data/resources/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +38 -0
  552. data/resources/mruby/mrbgems/mruby-io/mrbgem.rake +17 -0
  553. data/resources/mruby/mrbgems/mruby-io/mrblib/file.rb +208 -0
  554. data/resources/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +29 -0
  555. data/resources/mruby/mrbgems/mruby-io/mrblib/io.rb +387 -0
  556. data/resources/mruby/mrbgems/mruby-io/mrblib/kernel.rb +15 -0
  557. data/resources/mruby/mrbgems/mruby-io/run_test.rb +26 -0
  558. data/resources/mruby/mrbgems/mruby-io/src/file.c +489 -0
  559. data/resources/mruby/mrbgems/mruby-io/src/file_test.c +381 -0
  560. data/resources/mruby/mrbgems/mruby-io/src/io.c +1320 -0
  561. data/resources/mruby/mrbgems/mruby-io/src/mruby_io_gem.c +20 -0
  562. data/resources/mruby/mrbgems/mruby-io/test/file.rb +197 -0
  563. data/resources/mruby/mrbgems/mruby-io/test/file_test.rb +117 -0
  564. data/resources/mruby/mrbgems/mruby-io/test/gc_filedes.sh +4 -0
  565. data/resources/mruby/mrbgems/mruby-io/test/io.rb +642 -0
  566. data/resources/mruby/mrbgems/mruby-io/test/mruby_io_test.c +256 -0
  567. data/resources/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  568. data/resources/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +13 -0
  569. data/resources/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +264 -0
  570. data/resources/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +86 -0
  571. data/resources/mruby/mrbgems/mruby-math/mrbgem.rake +5 -0
  572. data/resources/mruby/mrbgems/mruby-math/src/math.c +783 -0
  573. data/resources/mruby/mrbgems/mruby-math/test/math.rb +152 -0
  574. data/resources/mruby/mrbgems/mruby-method/README.md +59 -0
  575. data/resources/mruby/mrbgems/mruby-method/mrbgem.rake +7 -0
  576. data/resources/mruby/mrbgems/mruby-method/mrblib/kernel.rb +9 -0
  577. data/resources/mruby/mrbgems/mruby-method/mrblib/method.rb +20 -0
  578. data/resources/mruby/mrbgems/mruby-method/mrblib/unbound_method.rb +9 -0
  579. data/resources/mruby/mrbgems/mruby-method/src/method.c +418 -0
  580. data/resources/mruby/mrbgems/mruby-method/test/method.rb +425 -0
  581. data/resources/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +5 -0
  582. data/resources/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +25 -0
  583. data/resources/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +102 -0
  584. data/resources/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +28 -0
  585. data/resources/mruby/mrbgems/mruby-object-ext/mrbgem.rake +5 -0
  586. data/resources/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  587. data/resources/mruby/mrbgems/mruby-object-ext/src/object.c +112 -0
  588. data/resources/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  589. data/resources/mruby/mrbgems/mruby-object-ext/test/object.rb +53 -0
  590. data/resources/mruby/mrbgems/mruby-objectspace/mrbgem.rake +5 -0
  591. data/resources/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +187 -0
  592. data/resources/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +60 -0
  593. data/resources/mruby/mrbgems/mruby-pack/README.md +70 -0
  594. data/resources/mruby/mrbgems/mruby-pack/mrbgem.rake +7 -0
  595. data/resources/mruby/mrbgems/mruby-pack/packtest.rb +157 -0
  596. data/resources/mruby/mrbgems/mruby-pack/run_test.rb +26 -0
  597. data/resources/mruby/mrbgems/mruby-pack/src/pack.c +1281 -0
  598. data/resources/mruby/mrbgems/mruby-pack/test/pack.rb +165 -0
  599. data/resources/mruby/mrbgems/mruby-print/mrbgem.rake +5 -0
  600. data/resources/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  601. data/resources/mruby/mrbgems/mruby-print/src/print.c +64 -0
  602. data/resources/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +5 -0
  603. data/resources/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +42 -0
  604. data/resources/mruby/mrbgems/mruby-proc-ext/src/proc.c +173 -0
  605. data/resources/mruby/mrbgems/mruby-proc-ext/test/proc.c +62 -0
  606. data/resources/mruby/mrbgems/mruby-proc-ext/test/proc.rb +96 -0
  607. data/resources/mruby/mrbgems/mruby-random/mrbgem.rake +5 -0
  608. data/resources/mruby/mrbgems/mruby-random/src/mt19937ar.c +224 -0
  609. data/resources/mruby/mrbgems/mruby-random/src/mt19937ar.h +80 -0
  610. data/resources/mruby/mrbgems/mruby-random/src/random.c +349 -0
  611. data/resources/mruby/mrbgems/mruby-random/src/random.h +12 -0
  612. data/resources/mruby/mrbgems/mruby-random/test/random.rb +88 -0
  613. data/resources/mruby/mrbgems/mruby-range-ext/mrbgem.rake +5 -0
  614. data/resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +31 -0
  615. data/resources/mruby/mrbgems/mruby-range-ext/src/range.c +176 -0
  616. data/resources/mruby/mrbgems/mruby-range-ext/test/range.rb +32 -0
  617. data/resources/mruby/mrbgems/mruby-socket/README.md +55 -0
  618. data/resources/mruby/mrbgems/mruby-socket/mrbgem.rake +17 -0
  619. data/resources/mruby/mrbgems/mruby-socket/mrblib/socket.rb +621 -0
  620. data/resources/mruby/mrbgems/mruby-socket/run_test.rb +28 -0
  621. data/resources/mruby/mrbgems/mruby-socket/src/const.cstub +453 -0
  622. data/resources/mruby/mrbgems/mruby-socket/src/const.def +163 -0
  623. data/resources/mruby/mrbgems/mruby-socket/src/gen.rb +17 -0
  624. data/resources/mruby/mrbgems/mruby-socket/src/socket.c +928 -0
  625. data/resources/mruby/mrbgems/mruby-socket/test/addrinfo.rb +91 -0
  626. data/resources/mruby/mrbgems/mruby-socket/test/basicsocket.rb +17 -0
  627. data/resources/mruby/mrbgems/mruby-socket/test/ipsocket.rb +44 -0
  628. data/resources/mruby/mrbgems/mruby-socket/test/socket.rb +38 -0
  629. data/resources/mruby/mrbgems/mruby-socket/test/sockettest.c +46 -0
  630. data/resources/mruby/mrbgems/mruby-socket/test/tcpsocket.rb +4 -0
  631. data/resources/mruby/mrbgems/mruby-socket/test/udpsocket.rb +16 -0
  632. data/resources/mruby/mrbgems/mruby-socket/test/unix.rb +130 -0
  633. data/resources/mruby/mrbgems/mruby-sprintf/mrbgem.rake +5 -0
  634. data/resources/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  635. data/resources/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  636. data/resources/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1126 -0
  637. data/resources/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +110 -0
  638. data/resources/mruby/mrbgems/mruby-string-ext/mrbgem.rake +6 -0
  639. data/resources/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +368 -0
  640. data/resources/mruby/mrbgems/mruby-string-ext/src/string.c +804 -0
  641. data/resources/mruby/mrbgems/mruby-string-ext/test/string.rb +682 -0
  642. data/resources/mruby/mrbgems/mruby-struct/mrbgem.rake +5 -0
  643. data/resources/mruby/mrbgems/mruby-struct/mrblib/struct.rb +103 -0
  644. data/resources/mruby/mrbgems/mruby-struct/src/struct.c +726 -0
  645. data/resources/mruby/mrbgems/mruby-struct/test/struct.rb +205 -0
  646. data/resources/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +5 -0
  647. data/resources/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +78 -0
  648. data/resources/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +64 -0
  649. data/resources/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +48 -0
  650. data/resources/mruby/mrbgems/mruby-test/README.md +7 -0
  651. data/resources/mruby/mrbgems/mruby-test/driver.c +175 -0
  652. data/resources/mruby/mrbgems/mruby-test/init_mrbtest.c +38 -0
  653. data/resources/mruby/mrbgems/mruby-test/mrbgem.rake +191 -0
  654. data/resources/mruby/mrbgems/mruby-time/mrbgem.rake +5 -0
  655. data/resources/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  656. data/resources/mruby/mrbgems/mruby-time/src/time.c +869 -0
  657. data/resources/mruby/mrbgems/mruby-time/test/time.rb +228 -0
  658. data/resources/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +5 -0
  659. data/resources/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  660. data/resources/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  661. data/resources/mruby/mrblib/00class.rb +29 -0
  662. data/resources/mruby/mrblib/10error.rb +59 -0
  663. data/resources/mruby/mrblib/array.rb +243 -0
  664. data/resources/mruby/mrblib/compar.rb +84 -0
  665. data/resources/mruby/mrblib/enum.rb +348 -0
  666. data/resources/mruby/mrblib/float.rb +9 -0
  667. data/resources/mruby/mrblib/hash.rb +358 -0
  668. data/resources/mruby/mrblib/init_mrblib.c +11 -0
  669. data/resources/mruby/mrblib/kernel.rb +50 -0
  670. data/resources/mruby/mrblib/mrblib.rake +21 -0
  671. data/resources/mruby/mrblib/numeric.rb +163 -0
  672. data/resources/mruby/mrblib/range.rb +67 -0
  673. data/resources/mruby/mrblib/string.rb +275 -0
  674. data/resources/mruby/mruby-source.gemspec +18 -0
  675. data/resources/mruby/src/array.c +1251 -0
  676. data/resources/mruby/src/backtrace.c +285 -0
  677. data/resources/mruby/src/class.c +2546 -0
  678. data/resources/mruby/src/codedump.c +477 -0
  679. data/resources/mruby/src/compar.c +13 -0
  680. data/resources/mruby/src/crc.c +39 -0
  681. data/resources/mruby/src/debug.c +217 -0
  682. data/resources/mruby/src/dump.c +1106 -0
  683. data/resources/mruby/src/enum.c +14 -0
  684. data/resources/mruby/src/error.c +513 -0
  685. data/resources/mruby/src/error.h +3 -0
  686. data/resources/mruby/src/etc.c +246 -0
  687. data/resources/mruby/src/fmt_fp.c +374 -0
  688. data/resources/mruby/src/gc.c +1835 -0
  689. data/resources/mruby/src/hash.c +916 -0
  690. data/resources/mruby/src/init.c +51 -0
  691. data/resources/mruby/src/kernel.c +1264 -0
  692. data/resources/mruby/src/load.c +706 -0
  693. data/resources/mruby/src/mruby_core.rake +20 -0
  694. data/resources/mruby/src/numeric.c +1574 -0
  695. data/resources/mruby/src/object.c +618 -0
  696. data/resources/mruby/src/opcode.h +2 -0
  697. data/resources/mruby/src/pool.c +209 -0
  698. data/resources/mruby/src/print.c +47 -0
  699. data/resources/mruby/src/proc.c +313 -0
  700. data/resources/mruby/src/range.c +446 -0
  701. data/resources/mruby/src/state.c +307 -0
  702. data/resources/mruby/src/string.c +3025 -0
  703. data/resources/mruby/src/symbol.c +494 -0
  704. data/resources/mruby/src/value_array.h +27 -0
  705. data/resources/mruby/src/variable.c +982 -0
  706. data/resources/mruby/src/version.c +17 -0
  707. data/resources/mruby/src/vm.c +3020 -0
  708. data/resources/mruby/tasks/benchmark.rake +91 -0
  709. data/resources/mruby/tasks/gitlab.rake +118 -0
  710. data/resources/mruby/tasks/libmruby.rake +24 -0
  711. data/resources/mruby/tasks/mrbgems.rake +98 -0
  712. data/resources/mruby/tasks/toolchains/android.rake +321 -0
  713. data/resources/mruby/tasks/toolchains/clang.rake +9 -0
  714. data/resources/mruby/tasks/toolchains/gcc.rake +66 -0
  715. data/resources/mruby/tasks/toolchains/openwrt.rake +38 -0
  716. data/resources/mruby/tasks/toolchains/visualcpp.rake +68 -0
  717. data/resources/mruby/test/assert.rb +249 -0
  718. data/resources/mruby/test/bintest.rb +33 -0
  719. data/resources/mruby/test/report.rb +4 -0
  720. data/resources/mruby/test/t/argumenterror.rb +16 -0
  721. data/resources/mruby/test/t/array.rb +394 -0
  722. data/resources/mruby/test/t/basicobject.rb +11 -0
  723. data/resources/mruby/test/t/bs_block.rb +521 -0
  724. data/resources/mruby/test/t/bs_literal.rb +38 -0
  725. data/resources/mruby/test/t/class.rb +451 -0
  726. data/resources/mruby/test/t/codegen.rb +197 -0
  727. data/resources/mruby/test/t/comparable.rb +80 -0
  728. data/resources/mruby/test/t/ensure.rb +54 -0
  729. data/resources/mruby/test/t/enumerable.rb +134 -0
  730. data/resources/mruby/test/t/exception.rb +422 -0
  731. data/resources/mruby/test/t/false.rb +31 -0
  732. data/resources/mruby/test/t/float.rb +209 -0
  733. data/resources/mruby/test/t/gc.rb +45 -0
  734. data/resources/mruby/test/t/hash.rb +375 -0
  735. data/resources/mruby/test/t/indexerror.rb +6 -0
  736. data/resources/mruby/test/t/integer.rb +277 -0
  737. data/resources/mruby/test/t/iterations.rb +61 -0
  738. data/resources/mruby/test/t/kernel.rb +600 -0
  739. data/resources/mruby/test/t/lang.rb +74 -0
  740. data/resources/mruby/test/t/literals.rb +337 -0
  741. data/resources/mruby/test/t/localjumperror.rb +13 -0
  742. data/resources/mruby/test/t/methods.rb +109 -0
  743. data/resources/mruby/test/t/module.rb +914 -0
  744. data/resources/mruby/test/t/nameerror.rb +28 -0
  745. data/resources/mruby/test/t/nil.rb +39 -0
  746. data/resources/mruby/test/t/nomethoderror.rb +22 -0
  747. data/resources/mruby/test/t/numeric.rb +43 -0
  748. data/resources/mruby/test/t/object.rb +11 -0
  749. data/resources/mruby/test/t/proc.rb +180 -0
  750. data/resources/mruby/test/t/range.rb +95 -0
  751. data/resources/mruby/test/t/rangeerror.rb +6 -0
  752. data/resources/mruby/test/t/regexperror.rb +4 -0
  753. data/resources/mruby/test/t/runtimeerror.rb +6 -0
  754. data/resources/mruby/test/t/standarderror.rb +6 -0
  755. data/resources/mruby/test/t/string.rb +728 -0
  756. data/resources/mruby/test/t/superclass.rb +47 -0
  757. data/resources/mruby/test/t/symbol.rb +30 -0
  758. data/resources/mruby/test/t/syntax.rb +468 -0
  759. data/resources/mruby/test/t/true.rb +31 -0
  760. data/resources/mruby/test/t/typeerror.rb +6 -0
  761. data/resources/mruby/test/t/unicode.rb +39 -0
  762. data/resources/mruby/travis_config.rb +53 -0
  763. metadata +806 -0
@@ -0,0 +1,185 @@
1
+ ##
2
+ # Enumerable(Ext) Test
3
+
4
+ assert("Enumerable#drop") do
5
+ a = [1, 2, 3, 4, 5, 0]
6
+
7
+ assert_equal [4, 5, 0], a.drop(3)
8
+ assert_equal [], a.drop(6)
9
+ end
10
+
11
+ assert("Enumerable#drop_while") do
12
+ a = [1, 2, 3, 4, 5, 0]
13
+ assert_equal [3, 4, 5, 0], a.drop_while {|i| i < 3 }
14
+ end
15
+
16
+ assert("Enumerable#take") do
17
+ a = [1, 2, 3, 4, 5, 0]
18
+ assert_equal [1, 2, 3], a.take(3)
19
+ end
20
+
21
+ assert("Enumerable#take_while") do
22
+ a = [1, 2, 3, 4, 5, 0]
23
+ assert_equal [1, 2], a.take_while {|i| i < 3}
24
+ end
25
+
26
+ assert("Enumerable#each_cons") do
27
+ a = []
28
+ b = (1..5).each_cons(3){|e| a << e}
29
+ assert_equal [[1, 2, 3], [2, 3, 4], [3, 4, 5]], a
30
+ assert_equal nil, b
31
+ end
32
+
33
+ assert("Enumerable#each_slice") do
34
+ a = []
35
+ b = (1..10).each_slice(3){|e| a << e}
36
+ assert_equal [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]], a
37
+ assert_equal nil, b
38
+ end
39
+
40
+ assert("Enumerable#group_by") do
41
+ r = (1..6).group_by {|i| i % 3 }
42
+ assert_equal [3, 6], r[0]
43
+ assert_equal [1, 4], r[1]
44
+ assert_equal [2, 5], r[2]
45
+ end
46
+
47
+ assert("Enumerable#sort_by") do
48
+ assert_equal ["car", "train", "bicycle"], %w{car bicycle train}.sort_by {|e| e.length}
49
+ end
50
+
51
+ assert("Enumerable#first") do
52
+ a = Object.new
53
+ a.extend Enumerable
54
+ def a.each
55
+ yield 1
56
+ yield 2
57
+ yield 3
58
+ end
59
+ assert_equal 1, a.first
60
+ assert_equal [1, 2], a.first(2)
61
+ assert_equal [1, 2, 3], a.first(10)
62
+ a = Object.new
63
+ a.extend Enumerable
64
+ def a.each
65
+ end
66
+ assert_nil a.first
67
+ end
68
+
69
+ assert("Enumerable#count") do
70
+ a = [1, 2, 4, 2]
71
+ assert_equal 4, a.count
72
+ assert_equal 2, a.count(2)
73
+ assert_equal 3, a.count{|x| x % 2 == 0}
74
+ end
75
+
76
+ assert("Enumerable#flat_map") do
77
+ assert_equal [1, 2, 3, 4], [1, 2, 3, 4].flat_map { |e| e }
78
+ assert_equal [1, -1, 2, -2, 3, -3, 4, -4], [1, 2, 3, 4].flat_map { |e| [e, -e] }
79
+ assert_equal [1, 2, 100, 3, 4, 100], [[1, 2], [3, 4]].flat_map { |e| e + [100] }
80
+ end
81
+
82
+ assert("Enumerable#max_by") do
83
+ assert_equal "albatross", %w[albatross dog horse].max_by { |x| x.length }
84
+ end
85
+
86
+ assert("Enumerable#min_by") do
87
+ assert_equal "dog", %w[albatross dog horse].min_by { |x| x.length }
88
+ end
89
+
90
+ assert("Enumerable#minmax") do
91
+ a = %w(albatross dog horse)
92
+ assert_equal ["albatross", "horse"], a.minmax
93
+ assert_equal ["dog", "albatross"], a.minmax { |a, b| a.length <=> b.length }
94
+ end
95
+
96
+ assert("Enumerable#minmax_by") do
97
+ assert_equal ["dog", "albatross"], %w(albatross dog horse).minmax_by { |x| x.length }
98
+ end
99
+
100
+ assert("Enumerable#none?") do
101
+ assert_true %w(ant bear cat).none? { |word| word.length == 5 }
102
+ assert_false %w(ant bear cat).none? { |word| word.length >= 4 }
103
+ assert_false [1, 3.14, 42].none?(Float)
104
+ assert_true [].none?
105
+ assert_true [nil, false].none?
106
+ assert_false [nil, true].none?
107
+ end
108
+
109
+ assert("Enumerable#one?") do
110
+ assert_true %w(ant bear cat).one? { |word| word.length == 4 }
111
+ assert_false %w(ant bear cat).one? { |word| word.length > 4 }
112
+ assert_false %w(ant bear cat).one? { |word| word.length < 4 }
113
+ assert_true [1, 3.14, 42].one?(Float)
114
+ assert_false [nil, true, 99].one?
115
+ assert_true [nil, true, false].one?
116
+ assert_true [ nil, true, 99 ].one?(Integer)
117
+ assert_false [].one?
118
+ end
119
+
120
+ assert("Enumerable#all? (enhancement)") do
121
+ assert_false [1, 2, 3.14].all?(Integer)
122
+ assert_true [1, 2, 3.14].all?(Numeric)
123
+ end
124
+
125
+ assert("Enumerable#any? (enhancement)") do
126
+ assert_false [1, 2, 3].all?(Float)
127
+ assert_true [nil, true, 99].any?(Integer)
128
+ end
129
+
130
+ assert("Enumerable#each_with_object") do
131
+ assert_true [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], (1..10).each_with_object([]) { |i, a| a << i*2 }
132
+ assert_raise(ArgumentError) { (1..10).each_with_object() { |i, a| a << i*2 } }
133
+ end
134
+
135
+ assert("Enumerable#reverse_each") do
136
+ r = (1..3)
137
+ a = []
138
+ assert_equal (1..3), r.reverse_each { |v| a << v }
139
+ assert_equal [3, 2, 1], a
140
+ end
141
+
142
+ assert("Enumerable#cycle") do
143
+ a = []
144
+ ["a", "b", "c"].cycle(2) { |v| a << v }
145
+ assert_equal ["a", "b", "c", "a", "b", "c"], a
146
+ assert_raise(TypeError) { ["a", "b", "c"].cycle("a") { |v| a << v } }
147
+
148
+ empty = Class.new do
149
+ include Enumerable
150
+ def each
151
+ end
152
+ end
153
+ assert_nil empty.new.cycle { break :nope }
154
+ end
155
+
156
+ assert("Enumerable#find_index") do
157
+ assert_nil (1..10).find_index { |i| i % 5 == 0 and i % 7 == 0 }
158
+ assert_equal 34, (1..100).find_index { |i| i % 5 == 0 and i % 7 == 0 }
159
+ assert_equal 49 ,(1..100).find_index(50)
160
+ end
161
+
162
+ assert("Enumerable#zip") do
163
+ a = [ 4, 5, 6 ]
164
+ b = [ 7, 8, 9 ]
165
+ assert_equal [[4, 7], [5, 8], [6, 9]], a.zip(b)
166
+ assert_equal [[1, 4, 7], [2, 5, 8], [3, 6, 9]], [1, 2, 3].zip(a, b)
167
+ assert_equal [[1, 4, 7], [2, 5, 8]], [1, 2].zip(a, b)
168
+ assert_equal [[4, 1, 8], [5, 2, nil], [6, nil, nil]], a.zip([1, 2], [8])
169
+ end
170
+
171
+ assert("Enumerable#to_h") do
172
+ c = Class.new {
173
+ include Enumerable
174
+ def each
175
+ yield [1,2]
176
+ yield [3,4]
177
+ end
178
+ }
179
+ h0 = {1=>2, 3=>4}
180
+ h = c.new.to_h
181
+ assert_equal Hash, h.class
182
+ assert_equal h0, h
183
+ # mruby-enum-ext also provides nil.to_h
184
+ assert_equal Hash.new, nil.to_h
185
+ end
@@ -0,0 +1,7 @@
1
+ MRuby::Gem::Specification.new('mruby-enum-lazy') do |spec|
2
+ spec.license = 'MIT'
3
+ spec.author = 'mruby developers'
4
+ spec.summary = 'Enumerator::Lazy class'
5
+ spec.add_dependency('mruby-enumerator', :core => 'mruby-enumerator')
6
+ spec.add_dependency('mruby-enum-ext', :core => 'mruby-enum-ext')
7
+ end
@@ -0,0 +1,178 @@
1
+ module Enumerable
2
+
3
+ # = Enumerable#lazy implementation
4
+ #
5
+ # Enumerable#lazy returns an instance of Enumerator::Lazy.
6
+ # You can use it just like as normal Enumerable object,
7
+ # except these methods act as 'lazy':
8
+ #
9
+ # - map collect
10
+ # - select find_all
11
+ # - reject
12
+ # - grep
13
+ # - drop
14
+ # - drop_while
15
+ # - take_while
16
+ # - flat_map collect_concat
17
+ # - zip
18
+ def lazy
19
+ Enumerator::Lazy.new(self)
20
+ end
21
+ end
22
+
23
+ class Enumerator
24
+ # == Acknowledgements
25
+ #
26
+ # Based on https://github.com/yhara/enumerable-lazy
27
+ # Inspired by https://github.com/antimon2/enumerable_lz
28
+ # http://jp.rubyist.net/magazine/?0034-Enumerable_lz (ja)
29
+ class Lazy < Enumerator
30
+ def initialize(obj, &block)
31
+ super(){|yielder|
32
+ begin
33
+ obj.each{|x|
34
+ if block
35
+ block.call(yielder, x)
36
+ else
37
+ yielder << x
38
+ end
39
+ }
40
+ rescue StopIteration
41
+ end
42
+ }
43
+ end
44
+
45
+ def to_enum(meth=:each, *args, &block)
46
+ unless self.respond_to?(meth)
47
+ raise NoMethodError, "undefined method #{meth}"
48
+ end
49
+ lz = Lazy.new(self, &block)
50
+ lz.obj = self
51
+ lz.meth = meth
52
+ lz.args = args
53
+ lz
54
+ end
55
+ alias enum_for to_enum
56
+
57
+ def map(&block)
58
+ Lazy.new(self){|yielder, val|
59
+ yielder << block.call(val)
60
+ }
61
+ end
62
+ alias collect map
63
+
64
+ def select(&block)
65
+ Lazy.new(self){|yielder, val|
66
+ if block.call(val)
67
+ yielder << val
68
+ end
69
+ }
70
+ end
71
+ alias find_all select
72
+
73
+ def reject(&block)
74
+ Lazy.new(self){|yielder, val|
75
+ unless block.call(val)
76
+ yielder << val
77
+ end
78
+ }
79
+ end
80
+
81
+ def grep(pattern)
82
+ Lazy.new(self){|yielder, val|
83
+ if pattern === val
84
+ yielder << val
85
+ end
86
+ }
87
+ end
88
+
89
+ def drop(n)
90
+ dropped = 0
91
+ Lazy.new(self){|yielder, val|
92
+ if dropped < n
93
+ dropped += 1
94
+ else
95
+ yielder << val
96
+ end
97
+ }
98
+ end
99
+
100
+ def drop_while(&block)
101
+ dropping = true
102
+ Lazy.new(self){|yielder, val|
103
+ if dropping
104
+ if not block.call(val)
105
+ yielder << val
106
+ dropping = false
107
+ end
108
+ else
109
+ yielder << val
110
+ end
111
+ }
112
+ end
113
+
114
+ def take(n)
115
+ if n == 0
116
+ return Lazy.new(self){raise StopIteration}
117
+ end
118
+ taken = 0
119
+ Lazy.new(self){|yielder, val|
120
+ yielder << val
121
+ taken += 1
122
+ if taken >= n
123
+ raise StopIteration
124
+ end
125
+ }
126
+ end
127
+
128
+ def take_while(&block)
129
+ Lazy.new(self){|yielder, val|
130
+ if block.call(val)
131
+ yielder << val
132
+ else
133
+ raise StopIteration
134
+ end
135
+ }
136
+ end
137
+
138
+ def flat_map(&block)
139
+ Lazy.new(self){|yielder, val|
140
+ ary = block.call(val)
141
+ # TODO: check ary is an Array
142
+ ary.each{|x|
143
+ yielder << x
144
+ }
145
+ }
146
+ end
147
+ alias collect_concat flat_map
148
+
149
+ def zip(*args, &block)
150
+ enums = [self] + args
151
+ Lazy.new(self){|yielder, val|
152
+ ary = enums.map{|e| e.next}
153
+ if block
154
+ yielder << block.call(ary)
155
+ else
156
+ yielder << ary
157
+ end
158
+ }
159
+ end
160
+
161
+ def uniq(&block)
162
+ hash = {}
163
+ Lazy.new(self){|yielder, val|
164
+ if block
165
+ v = block.call(val)
166
+ else
167
+ v = val
168
+ end
169
+ unless hash.include?(v)
170
+ yielder << val
171
+ hash[v] = val
172
+ end
173
+ }
174
+ end
175
+
176
+ alias force to_a
177
+ end
178
+ end
@@ -0,0 +1,53 @@
1
+ assert("Enumerator::Lazy") do
2
+ a = [1, 2]
3
+ assert_equal Enumerator::Lazy, a.lazy.class
4
+ end
5
+
6
+ assert("Enumerator::Lazy laziness") do
7
+ a = Object.new
8
+ def a.each
9
+ return to_enum :each unless block_given?
10
+ self.b << 10
11
+ yield 1
12
+ self.b << 20
13
+ yield 2
14
+ self.b << 30
15
+ yield 3
16
+ self.b << 40
17
+ yield 4
18
+ self.b << 50
19
+ yield 5
20
+ end
21
+ def a.b(b=nil)
22
+ @b = b if b
23
+ @b
24
+ end
25
+
26
+ a.b([])
27
+ assert_equal [1,2], a.each.lazy.take(2).force
28
+ assert_equal [10,20], a.b
29
+
30
+ a.b([])
31
+ assert_equal [2,4], a.each.lazy.select{|x|x%2==0}.take(2).force
32
+ assert_equal [10,20,30,40], a.b
33
+
34
+ a.b([])
35
+ assert_equal [1], a.each.lazy.take_while{|x|x<2}.take(1).force
36
+ assert_equal [10], a.b
37
+
38
+ a.b([])
39
+ assert_equal [1], a.each.lazy.take_while{|x|x<2}.take(4).force
40
+ assert_equal [10,20], a.b
41
+ end
42
+
43
+ assert("Enumrator::Lazy#to_enum") do
44
+ lazy_enum = (0..Float::INFINITY).lazy.to_enum(:each_slice, 2)
45
+ assert_kind_of Enumerator::Lazy, lazy_enum
46
+ assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4)
47
+ end
48
+
49
+ assert("Enumerator::Lazy#zip with cycle") do
50
+ e1 = [1, 2, 3].cycle
51
+ e2 = [:a, :b].cycle
52
+ assert_equal [[1,:a],[2,:b],[3,:a]], e1.lazy.zip(e2).first(3)
53
+ end
@@ -0,0 +1,7 @@
1
+ MRuby::Gem::Specification.new('mruby-enumerator') do |spec|
2
+ spec.license = 'MIT'
3
+ spec.author = 'mruby developers'
4
+ spec.add_dependency('mruby-fiber', :core => 'mruby-fiber')
5
+ spec.add_dependency 'mruby-enum-ext', :core => 'mruby-enum-ext'
6
+ spec.summary = 'Enumerator class'
7
+ end
@@ -0,0 +1,645 @@
1
+ ##
2
+ # enumerator.rb Enumerator class
3
+ # See Copyright Notice in mruby.h
4
+
5
+ ##
6
+ # A class which allows both internal and external iteration.
7
+ #
8
+ # An Enumerator can be created by the following methods.
9
+ # - {Kernel#to_enum}
10
+ # - {Kernel#enum_for}
11
+ # - {Enumerator#initialize Enumerator.new}
12
+ #
13
+ # Most methods have two forms: a block form where the contents
14
+ # are evaluated for each item in the enumeration, and a non-block form
15
+ # which returns a new Enumerator wrapping the iteration.
16
+ #
17
+ # enumerator = %w(one two three).each
18
+ # puts enumerator.class # => Enumerator
19
+ #
20
+ # enumerator.each_with_object("foo") do |item, obj|
21
+ # puts "#{obj}: #{item}"
22
+ # end
23
+ #
24
+ # # foo: one
25
+ # # foo: two
26
+ # # foo: three
27
+ #
28
+ # enum_with_obj = enumerator.each_with_object("foo")
29
+ # puts enum_with_obj.class # => Enumerator
30
+ #
31
+ # enum_with_obj.each do |item, obj|
32
+ # puts "#{obj}: #{item}"
33
+ # end
34
+ #
35
+ # # foo: one
36
+ # # foo: two
37
+ # # foo: three
38
+ #
39
+ # This allows you to chain Enumerators together. For example, you
40
+ # can map a list's elements to strings containing the index
41
+ # and the element as a string via:
42
+ #
43
+ # puts %w[foo bar baz].map.with_index { |w, i| "#{i}:#{w}" }
44
+ # # => ["0:foo", "1:bar", "2:baz"]
45
+ #
46
+ # An Enumerator can also be used as an external iterator.
47
+ # For example, Enumerator#next returns the next value of the iterator
48
+ # or raises StopIteration if the Enumerator is at the end.
49
+ #
50
+ # e = [1,2,3].each # returns an enumerator object.
51
+ # puts e.next # => 1
52
+ # puts e.next # => 2
53
+ # puts e.next # => 3
54
+ # puts e.next # raises StopIteration
55
+ #
56
+ # You can use this to implement an internal iterator as follows:
57
+ #
58
+ # def ext_each(e)
59
+ # while true
60
+ # begin
61
+ # vs = e.next_values
62
+ # rescue StopIteration
63
+ # return $!.result
64
+ # end
65
+ # y = yield(*vs)
66
+ # e.feed y
67
+ # end
68
+ # end
69
+ #
70
+ # o = Object.new
71
+ #
72
+ # def o.each
73
+ # puts yield
74
+ # puts yield(1)
75
+ # puts yield(1, 2)
76
+ # 3
77
+ # end
78
+ #
79
+ # # use o.each as an internal iterator directly.
80
+ # puts o.each {|*x| puts x; [:b, *x] }
81
+ # # => [], [:b], [1], [:b, 1], [1, 2], [:b, 1, 2], 3
82
+ #
83
+ # # convert o.each to an external iterator for
84
+ # # implementing an internal iterator.
85
+ # puts ext_each(o.to_enum) {|*x| puts x; [:b, *x] }
86
+ # # => [], [:b], [1], [:b, 1], [1, 2], [:b, 1, 2], 3
87
+ #
88
+ class Enumerator
89
+ include Enumerable
90
+
91
+ ##
92
+ # @overload initialize(size = nil, &block)
93
+ # @overload initialize(obj, method = :each, *args)
94
+ #
95
+ # Creates a new Enumerator object, which can be used as an
96
+ # Enumerable.
97
+ #
98
+ # In the first form, iteration is defined by the given block, in
99
+ # which a "yielder" object, given as block parameter, can be used to
100
+ # yield a value by calling the +yield+ method (aliased as +<<+):
101
+ #
102
+ # fib = Enumerator.new do |y|
103
+ # a = b = 1
104
+ # loop do
105
+ # y << a
106
+ # a, b = b, a + b
107
+ # end
108
+ # end
109
+ #
110
+ # p fib.take(10) # => [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
111
+ #
112
+ def initialize(obj=nil, meth=:each, *args, &block)
113
+ if block
114
+ obj = Generator.new(&block)
115
+ else
116
+ raise ArgumentError unless obj
117
+ end
118
+ if @obj and !self.respond_to?(meth)
119
+ raise NoMethodError, "undefined method #{meth}"
120
+ end
121
+
122
+ @obj = obj
123
+ @meth = meth
124
+ @args = args.dup
125
+ @fib = nil
126
+ @dst = nil
127
+ @lookahead = nil
128
+ @feedvalue = nil
129
+ @stop_exc = false
130
+ end
131
+ attr_accessor :obj, :meth, :args, :fib
132
+ private :obj, :meth, :args, :fib
133
+
134
+ def initialize_copy(obj)
135
+ raise TypeError, "can't copy type #{obj.class}" unless obj.kind_of? Enumerator
136
+ raise TypeError, "can't copy execution context" if obj.fib
137
+ @obj = obj.obj
138
+ @meth = obj.meth
139
+ @args = obj.args
140
+ @fib = nil
141
+ @lookahead = nil
142
+ @feedvalue = nil
143
+ self
144
+ end
145
+
146
+ ##
147
+ # call-seq:
148
+ # e.with_index(offset = 0) {|(*args), idx| ... }
149
+ # e.with_index(offset = 0)
150
+ #
151
+ # Iterates the given block for each element with an index, which
152
+ # starts from +offset+. If no block is given, returns a new Enumerator
153
+ # that includes the index, starting from +offset+
154
+ #
155
+ # +offset+:: the starting index to use
156
+ #
157
+ def with_index(offset=0, &block)
158
+ return to_enum :with_index, offset unless block
159
+
160
+ offset = if offset.nil?
161
+ 0
162
+ elsif offset.respond_to?(:to_int)
163
+ offset.to_int
164
+ else
165
+ raise TypeError, "no implicit conversion of #{offset.class} into Integer"
166
+ end
167
+
168
+ n = offset - 1
169
+ enumerator_block_call do |*i|
170
+ n += 1
171
+ block.call i.__svalue, n
172
+ end
173
+ end
174
+
175
+ ##
176
+ # call-seq:
177
+ # e.each_with_index {|(*args), idx| ... }
178
+ # e.each_with_index
179
+ #
180
+ # Same as Enumerator#with_index(0), i.e. there is no starting offset.
181
+ #
182
+ # If no block is given, a new Enumerator is returned that includes the index.
183
+ #
184
+ def each_with_index(&block)
185
+ with_index(0, &block)
186
+ end
187
+
188
+ ##
189
+ # call-seq:
190
+ # e.each_with_object(obj) {|(*args), obj| ... }
191
+ # e.each_with_object(obj)
192
+ # e.with_object(obj) {|(*args), obj| ... }
193
+ # e.with_object(obj)
194
+ #
195
+ # Iterates the given block for each element with an arbitrary object, +obj+,
196
+ # and returns +obj+
197
+ #
198
+ # If no block is given, returns a new Enumerator.
199
+ #
200
+ # @example
201
+ # to_three = Enumerator.new do |y|
202
+ # 3.times do |x|
203
+ # y << x
204
+ # end
205
+ # end
206
+ #
207
+ # to_three_with_string = to_three.with_object("foo")
208
+ # to_three_with_string.each do |x,string|
209
+ # puts "#{string}: #{x}"
210
+ # end
211
+ #
212
+ # # => foo:0
213
+ # # => foo:1
214
+ # # => foo:2
215
+ #
216
+ def with_object(object, &block)
217
+ return to_enum(:with_object, object) unless block
218
+
219
+ enumerator_block_call do |i|
220
+ block.call [i,object]
221
+ end
222
+ object
223
+ end
224
+
225
+ def inspect
226
+ return "#<#{self.class}: uninitialized>" unless @obj
227
+
228
+ if @args && @args.size > 0
229
+ args = @args.join(", ")
230
+ "#<#{self.class}: #{@obj}:#{@meth}(#{args})>"
231
+ else
232
+ "#<#{self.class}: #{@obj}:#{@meth}>"
233
+ end
234
+ end
235
+
236
+ ##
237
+ # call-seq:
238
+ # enum.each { |elm| block } -> obj
239
+ # enum.each -> enum
240
+ # enum.each(*appending_args) { |elm| block } -> obj
241
+ # enum.each(*appending_args) -> an_enumerator
242
+ #
243
+ # Iterates over the block according to how this Enumerator was constructed.
244
+ # If no block and no arguments are given, returns self.
245
+ #
246
+ # === Examples
247
+ #
248
+ # "Hello, world!".scan(/\w+/) #=> ["Hello", "world"]
249
+ # "Hello, world!".to_enum(:scan, /\w+/).to_a #=> ["Hello", "world"]
250
+ # "Hello, world!".to_enum(:scan).each(/\w+/).to_a #=> ["Hello", "world"]
251
+ #
252
+ # obj = Object.new
253
+ #
254
+ # def obj.each_arg(a, b=:b, *rest)
255
+ # yield a
256
+ # yield b
257
+ # yield rest
258
+ # :method_returned
259
+ # end
260
+ #
261
+ # enum = obj.to_enum :each_arg, :a, :x
262
+ #
263
+ # enum.each.to_a #=> [:a, :x, []]
264
+ # enum.each.equal?(enum) #=> true
265
+ # enum.each { |elm| elm } #=> :method_returned
266
+ #
267
+ # enum.each(:y, :z).to_a #=> [:a, :x, [:y, :z]]
268
+ # enum.each(:y, :z).equal?(enum) #=> false
269
+ # enum.each(:y, :z) { |elm| elm } #=> :method_returned
270
+ #
271
+ def each(*argv, &block)
272
+ obj = self
273
+ if 0 < argv.length
274
+ obj = self.dup
275
+ args = obj.args
276
+ if !args.empty?
277
+ args = args.dup
278
+ args.concat argv
279
+ else
280
+ args = argv.dup
281
+ end
282
+ obj.args = args
283
+ end
284
+ return obj unless block
285
+ enumerator_block_call(&block)
286
+ end
287
+
288
+ def enumerator_block_call(&block)
289
+ @obj.__send__ @meth, *@args, &block
290
+ end
291
+ private :enumerator_block_call
292
+
293
+ ##
294
+ # call-seq:
295
+ # e.next -> object
296
+ #
297
+ # Returns the next object in the enumerator, and move the internal position
298
+ # forward. When the position reached at the end, StopIteration is raised.
299
+ #
300
+ # === Example
301
+ #
302
+ # a = [1,2,3]
303
+ # e = a.to_enum
304
+ # p e.next #=> 1
305
+ # p e.next #=> 2
306
+ # p e.next #=> 3
307
+ # p e.next #raises StopIteration
308
+ #
309
+ # Note that enumeration sequence by +next+ does not affect other non-external
310
+ # enumeration methods, unless the underlying iteration methods itself has
311
+ # side-effect
312
+ #
313
+ def next
314
+ next_values.__svalue
315
+ end
316
+
317
+ ##
318
+ # call-seq:
319
+ # e.next_values -> array
320
+ #
321
+ # Returns the next object as an array in the enumerator, and move the
322
+ # internal position forward. When the position reached at the end,
323
+ # StopIteration is raised.
324
+ #
325
+ # This method can be used to distinguish <code>yield</code> and <code>yield
326
+ # nil</code>.
327
+ #
328
+ # === Example
329
+ #
330
+ # o = Object.new
331
+ # def o.each
332
+ # yield
333
+ # yield 1
334
+ # yield 1, 2
335
+ # yield nil
336
+ # yield [1, 2]
337
+ # end
338
+ # e = o.to_enum
339
+ # p e.next_values
340
+ # p e.next_values
341
+ # p e.next_values
342
+ # p e.next_values
343
+ # p e.next_values
344
+ # e = o.to_enum
345
+ # p e.next
346
+ # p e.next
347
+ # p e.next
348
+ # p e.next
349
+ # p e.next
350
+ #
351
+ # ## yield args next_values next
352
+ # # yield [] nil
353
+ # # yield 1 [1] 1
354
+ # # yield 1, 2 [1, 2] [1, 2]
355
+ # # yield nil [nil] nil
356
+ # # yield [1, 2] [[1, 2]] [1, 2]
357
+ #
358
+ # Note that +next_values+ does not affect other non-external enumeration
359
+ # methods unless underlying iteration method itself has side-effect
360
+ #
361
+ def next_values
362
+ if @lookahead
363
+ vs = @lookahead
364
+ @lookahead = nil
365
+ return vs
366
+ end
367
+ raise @stop_exc if @stop_exc
368
+
369
+ curr = Fiber.current
370
+
371
+ if !@fib || !@fib.alive?
372
+ @dst = curr
373
+ @fib = Fiber.new do
374
+ result = each do |*args|
375
+ feedvalue = nil
376
+ Fiber.yield args
377
+ if @feedvalue
378
+ feedvalue = @feedvalue
379
+ @feedvalue = nil
380
+ end
381
+ feedvalue
382
+ end
383
+ @stop_exc = StopIteration.new "iteration reached an end"
384
+ @stop_exc.result = result
385
+ Fiber.yield nil
386
+ end
387
+ @lookahead = nil
388
+ end
389
+
390
+ vs = @fib.resume curr
391
+ if @stop_exc
392
+ @fib = nil
393
+ @dst = nil
394
+ @lookahead = nil
395
+ @feedvalue = nil
396
+ raise @stop_exc
397
+ end
398
+ vs
399
+ end
400
+
401
+ ##
402
+ # call-seq:
403
+ # e.peek -> object
404
+ #
405
+ # Returns the next object in the enumerator, but doesn't move the internal
406
+ # position forward. If the position is already at the end, StopIteration
407
+ # is raised.
408
+ #
409
+ # === Example
410
+ #
411
+ # a = [1,2,3]
412
+ # e = a.to_enum
413
+ # p e.next #=> 1
414
+ # p e.peek #=> 2
415
+ # p e.peek #=> 2
416
+ # p e.peek #=> 2
417
+ # p e.next #=> 2
418
+ # p e.next #=> 3
419
+ # p e.next #raises StopIteration
420
+ #
421
+ def peek
422
+ peek_values.__svalue
423
+ end
424
+
425
+ ##
426
+ # call-seq:
427
+ # e.peek_values -> array
428
+ #
429
+ # Returns the next object as an array, similar to Enumerator#next_values, but
430
+ # doesn't move the internal position forward. If the position is already at
431
+ # the end, StopIteration is raised.
432
+ #
433
+ # === Example
434
+ #
435
+ # o = Object.new
436
+ # def o.each
437
+ # yield
438
+ # yield 1
439
+ # yield 1, 2
440
+ # end
441
+ # e = o.to_enum
442
+ # p e.peek_values #=> []
443
+ # e.next
444
+ # p e.peek_values #=> [1]
445
+ # p e.peek_values #=> [1]
446
+ # e.next
447
+ # p e.peek_values #=> [1, 2]
448
+ # e.next
449
+ # p e.peek_values # raises StopIteration
450
+ #
451
+ def peek_values
452
+ if @lookahead.nil?
453
+ @lookahead = next_values
454
+ end
455
+ @lookahead.dup
456
+ end
457
+
458
+ ##
459
+ # call-seq:
460
+ # e.rewind -> e
461
+ #
462
+ # Rewinds the enumeration sequence to the beginning.
463
+ #
464
+ # If the enclosed object responds to a "rewind" method, it is called.
465
+ #
466
+ def rewind
467
+ @obj.rewind if @obj.respond_to? :rewind
468
+ @fib = nil
469
+ @dst = nil
470
+ @lookahead = nil
471
+ @feedvalue = nil
472
+ @stop_exc = false
473
+ self
474
+ end
475
+
476
+ ##
477
+ # call-seq:
478
+ # e.feed obj -> nil
479
+ #
480
+ # Sets the value to be returned by the next yield inside +e+.
481
+ #
482
+ # If the value is not set, the yield returns nil.
483
+ #
484
+ # This value is cleared after being yielded.
485
+ #
486
+ # # Array#map passes the array's elements to "yield" and collects the
487
+ # # results of "yield" as an array.
488
+ # # Following example shows that "next" returns the passed elements and
489
+ # # values passed to "feed" are collected as an array which can be
490
+ # # obtained by StopIteration#result.
491
+ # e = [1,2,3].map
492
+ # p e.next #=> 1
493
+ # e.feed "a"
494
+ # p e.next #=> 2
495
+ # e.feed "b"
496
+ # p e.next #=> 3
497
+ # e.feed "c"
498
+ # begin
499
+ # e.next
500
+ # rescue StopIteration
501
+ # p $!.result #=> ["a", "b", "c"]
502
+ # end
503
+ #
504
+ # o = Object.new
505
+ # def o.each
506
+ # x = yield # (2) blocks
507
+ # p x # (5) => "foo"
508
+ # x = yield # (6) blocks
509
+ # p x # (8) => nil
510
+ # x = yield # (9) blocks
511
+ # p x # not reached w/o another e.next
512
+ # end
513
+ #
514
+ # e = o.to_enum
515
+ # e.next # (1)
516
+ # e.feed "foo" # (3)
517
+ # e.next # (4)
518
+ # e.next # (7)
519
+ # # (10)
520
+ #
521
+ def feed(value)
522
+ raise TypeError, "feed value already set" if @feedvalue
523
+ @feedvalue = value
524
+ nil
525
+ end
526
+
527
+ # just for internal
528
+ class Generator
529
+ include Enumerable
530
+ def initialize(&block)
531
+ raise TypeError, "wrong argument type #{self.class} (expected Proc)" unless block.kind_of? Proc
532
+
533
+ @proc = block
534
+ end
535
+
536
+ def each(*args, &block)
537
+ args.unshift Yielder.new(&block)
538
+ @proc.call(*args)
539
+ end
540
+ end
541
+
542
+ # just for internal
543
+ class Yielder
544
+ def initialize(&block)
545
+ raise LocalJumpError, "no block given" unless block
546
+
547
+ @proc = block
548
+ end
549
+
550
+ def yield(*args)
551
+ @proc.call(*args)
552
+ end
553
+
554
+ def << *args
555
+ self.yield(*args)
556
+ self
557
+ end
558
+ end
559
+ end
560
+
561
+ module Kernel
562
+ ##
563
+ # call-seq:
564
+ # obj.to_enum(method = :each, *args) -> enum
565
+ # obj.enum_for(method = :each, *args) -> enum
566
+ # obj.to_enum(method = :each, *args) {|*args| block} -> enum
567
+ # obj.enum_for(method = :each, *args){|*args| block} -> enum
568
+ #
569
+ # Creates a new Enumerator which will enumerate by calling +method+ on
570
+ # +obj+, passing +args+ if any.
571
+ #
572
+ # If a block is given, it will be used to calculate the size of
573
+ # the enumerator without the need to iterate it (see Enumerator#size).
574
+ #
575
+ # === Examples
576
+ #
577
+ # str = "xyz"
578
+ #
579
+ # enum = str.enum_for(:each_byte)
580
+ # enum.each { |b| puts b }
581
+ # # => 120
582
+ # # => 121
583
+ # # => 122
584
+ #
585
+ # # protect an array from being modified by some_method
586
+ # a = [1, 2, 3]
587
+ # some_method(a.to_enum)
588
+ #
589
+ # It is typical to call to_enum when defining methods for
590
+ # a generic Enumerable, in case no block is passed.
591
+ #
592
+ # Here is such an example, with parameter passing and a sizing block:
593
+ #
594
+ # module Enumerable
595
+ # # a generic method to repeat the values of any enumerable
596
+ # def repeat(n)
597
+ # raise ArgumentError, "#{n} is negative!" if n < 0
598
+ # unless block_given?
599
+ # return to_enum(__method__, n) do # __method__ is :repeat here
600
+ # sz = size # Call size and multiply by n...
601
+ # sz * n if sz # but return nil if size itself is nil
602
+ # end
603
+ # end
604
+ # each do |*val|
605
+ # n.times { yield *val }
606
+ # end
607
+ # end
608
+ # end
609
+ #
610
+ # %i[hello world].repeat(2) { |w| puts w }
611
+ # # => Prints 'hello', 'hello', 'world', 'world'
612
+ # enum = (1..14).repeat(3)
613
+ # # => returns an Enumerator when called without a block
614
+ # enum.first(4) # => [1, 1, 1, 2]
615
+ #
616
+ def to_enum(meth=:each, *args)
617
+ Enumerator.new self, meth, *args
618
+ end
619
+ alias enum_for to_enum
620
+ end
621
+
622
+ module Enumerable
623
+ # use Enumerator to use infinite sequence
624
+ def zip(*arg)
625
+ ary = []
626
+ arg = arg.map{|a|a.each}
627
+ i = 0
628
+ self.each do |*val|
629
+ a = []
630
+ a.push(val.__svalue)
631
+ idx = 0
632
+ while idx < arg.size
633
+ begin
634
+ a.push(arg[idx].next)
635
+ rescue StopIteration
636
+ a.push(nil)
637
+ end
638
+ idx += 1
639
+ end
640
+ ary.push(a)
641
+ i += 1
642
+ end
643
+ ary
644
+ end
645
+ end