rroonga 9.0.3-x86-mingw32 → 9.0.7-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (769) hide show
  1. checksums.yaml +4 -4
  2. data/doc/text/news.md +30 -0
  3. data/ext/groonga/rb-grn-context.c +27 -0
  4. data/ext/groonga/rb-grn-flushable.c +7 -0
  5. data/ext/groonga/rb-grn-index-column.c +28 -0
  6. data/ext/groonga/rb-grn-index-cursor.c +19 -0
  7. data/ext/groonga/rb-grn-logger.c +17 -3
  8. data/ext/groonga/rb-grn-object.c +236 -22
  9. data/ext/groonga/rb-grn-table.c +68 -42
  10. data/ext/groonga/rb-grn.h +1 -1
  11. data/lib/2.3/groonga.so +0 -0
  12. data/lib/2.4/groonga.so +0 -0
  13. data/lib/2.5/groonga.so +0 -0
  14. data/lib/2.6/groonga.so +0 -0
  15. data/lib/groonga/dumper.rb +3 -0
  16. data/lib/groonga/record.rb +2 -2
  17. data/test/groonga-test-utils.rb +28 -5
  18. data/test/run-test.rb +0 -2
  19. data/test/test-accessor.rb +63 -7
  20. data/test/test-context.rb +25 -0
  21. data/test/test-exception.rb +5 -0
  22. data/test/test-flushable.rb +51 -6
  23. data/test/test-index-column.rb +67 -6
  24. data/test/test-index-cursor.rb +26 -0
  25. data/test/test-logger.rb +56 -11
  26. data/test/test-plugin.rb +1 -0
  27. data/test/test-query-logger.rb +4 -3
  28. data/test/test-record.rb +2 -1
  29. data/test/test-remote.rb +40 -10
  30. data/test/test-schema-dumper.rb +13 -0
  31. data/test/test-table.rb +21 -1
  32. data/test/test-variable.rb +23 -7
  33. data/vendor/local/bin/generate-pdb.bat +21 -21
  34. data/vendor/local/bin/grndb.exe +0 -0
  35. data/vendor/local/bin/groonga-benchmark.exe +0 -0
  36. data/vendor/local/bin/groonga-suggest-create-dataset.exe +0 -0
  37. data/vendor/local/bin/groonga.exe +0 -0
  38. data/vendor/local/bin/libgroonga-0.dll +0 -0
  39. data/vendor/local/bin/libmecab-2.dll +0 -0
  40. data/vendor/local/bin/libmsgpackc.dll +0 -0
  41. data/vendor/local/bin/libonigmo-6.dll +0 -0
  42. data/vendor/local/bin/libpcre-1.dll +0 -0
  43. data/vendor/local/bin/libpcrecpp-0.dll +0 -0
  44. data/vendor/local/bin/libpcreposix-0.dll +0 -0
  45. data/vendor/local/bin/lz4.exe +0 -0
  46. data/vendor/local/bin/lz4c.exe +0 -0
  47. data/vendor/local/bin/lz4cat.exe +0 -0
  48. data/vendor/local/bin/mecab.exe +0 -0
  49. data/vendor/local/bin/pcregrep.exe +0 -0
  50. data/vendor/local/bin/pcretest.exe +0 -0
  51. data/vendor/local/bin/unlz4.exe +0 -0
  52. data/vendor/local/bin/zlib1.dll +0 -0
  53. data/vendor/local/cmake/RapidJSONConfig.cmake +3 -0
  54. data/vendor/local/cmake/RapidJSONConfigVersion.cmake +10 -0
  55. data/vendor/local/include/groonga/groonga/expr.h +16 -0
  56. data/vendor/local/include/groonga/groonga/obj.h +8 -0
  57. data/vendor/local/include/groonga/groonga/output.h +5 -0
  58. data/vendor/local/include/groonga/groonga/version.h +2 -2
  59. data/vendor/local/include/rapidjson/allocators.h +271 -0
  60. data/vendor/local/include/rapidjson/document.h +2575 -0
  61. data/vendor/local/include/rapidjson/encodedstream.h +299 -0
  62. data/vendor/local/include/rapidjson/encodings.h +716 -0
  63. data/vendor/local/include/rapidjson/error/en.h +74 -0
  64. data/vendor/local/include/rapidjson/error/error.h +155 -0
  65. data/vendor/local/include/rapidjson/filereadstream.h +99 -0
  66. data/vendor/local/include/rapidjson/filewritestream.h +104 -0
  67. data/vendor/local/include/rapidjson/fwd.h +151 -0
  68. data/vendor/local/include/rapidjson/internal/biginteger.h +290 -0
  69. data/vendor/local/include/rapidjson/internal/diyfp.h +258 -0
  70. data/vendor/local/include/rapidjson/internal/dtoa.h +245 -0
  71. data/vendor/local/include/rapidjson/internal/ieee754.h +78 -0
  72. data/vendor/local/include/rapidjson/internal/itoa.h +304 -0
  73. data/vendor/local/include/rapidjson/internal/meta.h +181 -0
  74. data/vendor/local/include/rapidjson/internal/pow10.h +55 -0
  75. data/vendor/local/include/rapidjson/internal/regex.h +701 -0
  76. data/vendor/local/include/rapidjson/internal/stack.h +230 -0
  77. data/vendor/local/include/rapidjson/internal/strfunc.h +55 -0
  78. data/vendor/local/include/rapidjson/internal/strtod.h +269 -0
  79. data/vendor/local/include/rapidjson/internal/swap.h +46 -0
  80. data/vendor/local/include/rapidjson/istreamwrapper.h +115 -0
  81. data/vendor/local/include/rapidjson/memorybuffer.h +70 -0
  82. data/vendor/local/include/rapidjson/memorystream.h +71 -0
  83. data/vendor/local/include/rapidjson/msinttypes/inttypes.h +316 -0
  84. data/vendor/local/include/rapidjson/msinttypes/stdint.h +300 -0
  85. data/vendor/local/include/rapidjson/ostreamwrapper.h +81 -0
  86. data/vendor/local/include/rapidjson/pointer.h +1358 -0
  87. data/vendor/local/include/rapidjson/prettywriter.h +255 -0
  88. data/vendor/local/include/rapidjson/rapidjson.h +615 -0
  89. data/vendor/local/include/rapidjson/reader.h +1879 -0
  90. data/vendor/local/include/rapidjson/schema.h +2006 -0
  91. data/vendor/local/include/rapidjson/stream.h +179 -0
  92. data/vendor/local/include/rapidjson/stringbuffer.h +117 -0
  93. data/vendor/local/include/rapidjson/writer.h +610 -0
  94. data/vendor/local/lib/groonga/plugins/functions/index_column.a +0 -0
  95. data/vendor/local/lib/groonga/plugins/functions/index_column.dll +0 -0
  96. data/vendor/local/lib/groonga/plugins/functions/index_column.dll.a +0 -0
  97. data/vendor/local/lib/groonga/plugins/functions/index_column.la +1 -1
  98. data/vendor/local/lib/groonga/plugins/functions/math.a +0 -0
  99. data/vendor/local/lib/groonga/plugins/functions/math.dll +0 -0
  100. data/vendor/local/lib/groonga/plugins/functions/math.dll.a +0 -0
  101. data/vendor/local/lib/groonga/plugins/functions/math.la +1 -1
  102. data/vendor/local/lib/groonga/plugins/functions/number.a +0 -0
  103. data/vendor/local/lib/groonga/plugins/functions/number.dll +0 -0
  104. data/vendor/local/lib/groonga/plugins/functions/number.dll.a +0 -0
  105. data/vendor/local/lib/groonga/plugins/functions/number.la +1 -1
  106. data/vendor/local/lib/groonga/plugins/functions/string.a +0 -0
  107. data/vendor/local/lib/groonga/plugins/functions/string.dll +0 -0
  108. data/vendor/local/lib/groonga/plugins/functions/string.dll.a +0 -0
  109. data/vendor/local/lib/groonga/plugins/functions/string.la +1 -1
  110. data/vendor/local/lib/groonga/plugins/functions/time.a +0 -0
  111. data/vendor/local/lib/groonga/plugins/functions/time.dll +0 -0
  112. data/vendor/local/lib/groonga/plugins/functions/time.dll.a +0 -0
  113. data/vendor/local/lib/groonga/plugins/functions/time.la +1 -1
  114. data/vendor/local/lib/groonga/plugins/functions/vector.a +0 -0
  115. data/vendor/local/lib/groonga/plugins/functions/vector.dll +0 -0
  116. data/vendor/local/lib/groonga/plugins/functions/vector.dll.a +0 -0
  117. data/vendor/local/lib/groonga/plugins/functions/vector.la +1 -1
  118. data/vendor/local/lib/groonga/plugins/normalizers/mysql.a +0 -0
  119. data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll +0 -0
  120. data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll.a +0 -0
  121. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
  122. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
  123. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
  124. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +1 -1
  125. data/vendor/local/lib/groonga/plugins/sharding/dynamic_columns.rb +44 -18
  126. data/vendor/local/lib/groonga/plugins/sharding/logical_count.rb +9 -8
  127. data/vendor/local/lib/groonga/plugins/sharding/logical_range_filter.rb +48 -15
  128. data/vendor/local/lib/groonga/plugins/sharding/logical_select.rb +84 -58
  129. data/vendor/local/lib/groonga/plugins/sharding/range_expression_builder.rb +1 -1
  130. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  131. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  132. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  133. data/vendor/local/lib/groonga/plugins/suggest/suggest.la +1 -1
  134. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.a +0 -0
  135. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll +0 -0
  136. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll.a +0 -0
  137. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.la +1 -1
  138. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  139. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  140. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  141. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +1 -1
  142. data/vendor/local/lib/groonga/scripts/ruby/command.rb +3 -4
  143. data/vendor/local/lib/groonga/scripts/ruby/command_line/grndb.rb +267 -77
  144. data/vendor/local/lib/groonga/scripts/ruby/command_line_parser.rb +96 -0
  145. data/vendor/local/lib/groonga/scripts/ruby/expression_rewriters/optimizer.rb +1 -1
  146. data/vendor/local/lib/groonga/scripts/ruby/expression_tree/binary_operation.rb +30 -7
  147. data/vendor/local/lib/groonga/scripts/ruby/initialize/pre.rb +5 -0
  148. data/vendor/local/lib/groonga/scripts/ruby/loggable.rb +8 -0
  149. data/vendor/local/lib/groonga/scripts/ruby/logger/flags.rb +70 -0
  150. data/vendor/local/lib/groonga/scripts/ruby/query_loggable.rb +8 -0
  151. data/vendor/local/lib/groonga/scripts/ruby/scan_info_builder.rb +1 -1
  152. data/vendor/local/lib/groonga/scripts/ruby/scan_info_data.rb +2 -2
  153. data/vendor/local/lib/groonga/scripts/ruby/time.rb +9 -0
  154. data/vendor/local/lib/libgroonga.a +0 -0
  155. data/vendor/local/lib/libgroonga.dll.a +0 -0
  156. data/vendor/local/lib/libgroonga.la +1 -1
  157. data/vendor/local/lib/liblz4.dll +0 -0
  158. data/vendor/local/lib/liblz4.dll.1 +0 -0
  159. data/vendor/local/lib/liblz4.dll.1.8.2 +0 -0
  160. data/vendor/local/lib/libmecab.dll.a +0 -0
  161. data/vendor/local/lib/libmsgpackc.dll.a +0 -0
  162. data/vendor/local/lib/libonigmo.a +0 -0
  163. data/vendor/local/lib/libonigmo.dll.a +0 -0
  164. data/vendor/local/lib/libonigmo.la +1 -1
  165. data/vendor/local/lib/libpcre.dll.a +0 -0
  166. data/vendor/local/lib/libpcrecpp.dll.a +0 -0
  167. data/vendor/local/lib/libpcreposix.dll.a +0 -0
  168. data/vendor/local/lib/libz.dll.a +0 -0
  169. data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
  170. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  171. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  172. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  173. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  174. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  175. data/vendor/local/share/doc/RapidJSON/examples/CMakeLists.txt +42 -0
  176. data/vendor/local/share/doc/RapidJSON/examples/capitalize/capitalize.cpp +67 -0
  177. data/vendor/local/share/doc/RapidJSON/examples/condense/condense.cpp +32 -0
  178. data/vendor/local/share/doc/RapidJSON/examples/filterkey/filterkey.cpp +135 -0
  179. data/vendor/local/share/doc/RapidJSON/examples/filterkeydom/filterkeydom.cpp +170 -0
  180. data/vendor/local/share/doc/RapidJSON/examples/jsonx/jsonx.cpp +207 -0
  181. data/vendor/local/share/doc/RapidJSON/examples/messagereader/messagereader.cpp +105 -0
  182. data/vendor/local/share/doc/RapidJSON/examples/parsebyparts/parsebyparts.cpp +173 -0
  183. data/vendor/local/share/doc/RapidJSON/examples/pretty/pretty.cpp +30 -0
  184. data/vendor/local/share/doc/RapidJSON/examples/prettyauto/prettyauto.cpp +56 -0
  185. data/vendor/local/share/doc/RapidJSON/examples/schemavalidator/schemavalidator.cpp +72 -0
  186. data/vendor/local/share/doc/RapidJSON/examples/serialize/serialize.cpp +173 -0
  187. data/vendor/local/share/doc/RapidJSON/examples/simpledom/simpledom.cpp +29 -0
  188. data/vendor/local/share/doc/RapidJSON/examples/simplereader/simplereader.cpp +42 -0
  189. data/vendor/local/share/doc/RapidJSON/examples/simplewriter/simplewriter.cpp +36 -0
  190. data/vendor/local/share/doc/RapidJSON/examples/tutorial/tutorial.cpp +151 -0
  191. data/vendor/local/share/doc/RapidJSON/readme.md +160 -0
  192. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  193. data/vendor/local/share/doc/groonga/en/html/_static/documentation_options.js +1 -1
  194. data/vendor/local/share/doc/groonga/en/html/characteristic.html +3 -3
  195. data/vendor/local/share/doc/groonga/en/html/client.html +3 -3
  196. data/vendor/local/share/doc/groonga/en/html/community.html +3 -3
  197. data/vendor/local/share/doc/groonga/en/html/contribution.html +3 -3
  198. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +3 -3
  199. data/vendor/local/share/doc/groonga/en/html/contribution/development/build.html +3 -3
  200. data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_autotools.html +3 -3
  201. data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_cmake.html +3 -3
  202. data/vendor/local/share/doc/groonga/en/html/contribution/development/build/windows_cmake.html +3 -3
  203. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +3 -3
  204. data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +3 -3
  205. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +3 -3
  206. data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +3 -3
  207. data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +3 -3
  208. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +3 -3
  209. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +3 -3
  210. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +3 -3
  211. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +3 -3
  212. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +3 -3
  213. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +3 -3
  214. data/vendor/local/share/doc/groonga/en/html/development.html +3 -3
  215. data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +3 -3
  216. data/vendor/local/share/doc/groonga/en/html/genindex.html +3 -3
  217. data/vendor/local/share/doc/groonga/en/html/index.html +11 -7
  218. data/vendor/local/share/doc/groonga/en/html/install.html +5 -4
  219. data/vendor/local/share/doc/groonga/en/html/install/centos.html +6 -6
  220. data/vendor/local/share/doc/groonga/en/html/install/debian.html +79 -8
  221. data/vendor/local/share/doc/groonga/en/html/install/docker.html +3 -3
  222. data/vendor/local/share/doc/groonga/en/html/install/fedora.html +6 -6
  223. data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +6 -6
  224. data/vendor/local/share/doc/groonga/en/html/install/others.html +6 -6
  225. data/vendor/local/share/doc/groonga/en/html/install/solaris.html +6 -6
  226. data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +6 -6
  227. data/vendor/local/share/doc/groonga/en/html/install/windows.html +12 -12
  228. data/vendor/local/share/doc/groonga/en/html/limitations.html +3 -3
  229. data/vendor/local/share/doc/groonga/en/html/news.html +498 -206
  230. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +3 -3
  231. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +3 -3
  232. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +3 -3
  233. data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +3 -3
  234. data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +3 -3
  235. data/vendor/local/share/doc/groonga/en/html/news/2.x.html +3 -3
  236. data/vendor/local/share/doc/groonga/en/html/news/3.x.html +3 -3
  237. data/vendor/local/share/doc/groonga/en/html/news/4.x.html +3 -3
  238. data/vendor/local/share/doc/groonga/en/html/news/5.x.html +3 -3
  239. data/vendor/local/share/doc/groonga/en/html/news/6.x.html +3 -3
  240. data/vendor/local/share/doc/groonga/en/html/news/senna.html +3 -3
  241. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  242. data/vendor/local/share/doc/groonga/en/html/reference.html +9 -6
  243. data/vendor/local/share/doc/groonga/en/html/reference/alias.html +3 -3
  244. data/vendor/local/share/doc/groonga/en/html/reference/api.html +3 -3
  245. data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +3 -3
  246. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +3 -3
  247. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +3 -3
  248. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +3 -3
  249. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +3 -3
  250. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +3 -3
  251. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +3 -3
  252. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +3 -3
  253. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +3 -3
  254. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +3 -3
  255. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +3 -3
  256. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +3 -3
  257. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +3 -3
  258. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +3 -3
  259. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_inspect.html +3 -3
  260. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +3 -3
  261. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +3 -3
  262. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +3 -3
  263. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +3 -3
  264. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +3 -3
  265. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +3 -3
  266. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_thread.html +3 -3
  267. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +3 -3
  268. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +3 -3
  269. data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +3 -3
  270. data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +3 -3
  271. data/vendor/local/share/doc/groonga/en/html/reference/cast.html +3 -3
  272. data/vendor/local/share/doc/groonga/en/html/reference/column.html +3 -3
  273. data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +3 -3
  274. data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +3 -3
  275. data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +3 -3
  276. data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +3 -3
  277. data/vendor/local/share/doc/groonga/en/html/reference/command.html +3 -3
  278. data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +3 -3
  279. data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +3 -3
  280. data/vendor/local/share/doc/groonga/en/html/reference/command/pretty_print.html +3 -3
  281. data/vendor/local/share/doc/groonga/en/html/reference/command/request_id.html +3 -3
  282. data/vendor/local/share/doc/groonga/en/html/reference/command/request_timeout.html +3 -3
  283. data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +3 -3
  284. data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +3 -3
  285. data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +3 -3
  286. data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +3 -3
  287. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_copy.html +3 -3
  288. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +3 -3
  289. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +3 -3
  290. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +3 -3
  291. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +3 -3
  292. data/vendor/local/share/doc/groonga/en/html/reference/commands/config_delete.html +3 -3
  293. data/vendor/local/share/doc/groonga/en/html/reference/commands/config_get.html +3 -3
  294. data/vendor/local/share/doc/groonga/en/html/reference/commands/config_set.html +3 -3
  295. data/vendor/local/share/doc/groonga/en/html/reference/commands/database_unmap.html +3 -3
  296. data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +3 -3
  297. data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +3 -3
  298. data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +3 -3
  299. data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +3 -3
  300. data/vendor/local/share/doc/groonga/en/html/reference/commands/io_flush.html +3 -3
  301. data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +3 -3
  302. data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_acquire.html +3 -3
  303. data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +3 -3
  304. data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_release.html +3 -3
  305. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +3 -3
  306. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +3 -3
  307. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +3 -3
  308. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +3 -3
  309. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_parameters.html +3 -3
  310. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +77 -4
  311. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_select.html +3 -3
  312. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_shard_list.html +3 -3
  313. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_table_remove.html +3 -3
  314. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +3 -3
  315. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +3 -3
  316. data/vendor/local/share/doc/groonga/en/html/reference/commands/object_exist.html +3 -3
  317. data/vendor/local/share/doc/groonga/en/html/reference/commands/object_inspect.html +78 -54
  318. data/vendor/local/share/doc/groonga/en/html/reference/commands/object_list.html +3 -3
  319. data/vendor/local/share/doc/groonga/en/html/reference/commands/object_remove.html +3 -3
  320. data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +3 -3
  321. data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +3 -3
  322. data/vendor/local/share/doc/groonga/en/html/reference/commands/query_expand.html +3 -3
  323. data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +3 -3
  324. data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +3 -3
  325. data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +3 -3
  326. data/vendor/local/share/doc/groonga/en/html/reference/commands/reindex.html +3 -3
  327. data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +3 -3
  328. data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +3 -3
  329. data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +3 -3
  330. data/vendor/local/share/doc/groonga/en/html/reference/commands/schema.html +3 -3
  331. data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +3 -3
  332. data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +3 -3
  333. data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +3 -3
  334. data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +3 -3
  335. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_copy.html +3 -3
  336. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +3 -3
  337. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +3 -3
  338. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +3 -3
  339. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_rename.html +3 -3
  340. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +3 -3
  341. data/vendor/local/share/doc/groonga/en/html/reference/commands/thread_limit.html +3 -3
  342. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +3 -3
  343. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +3 -3
  344. data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +3 -3
  345. data/vendor/local/share/doc/groonga/en/html/reference/configuration.html +6 -6
  346. data/vendor/local/share/doc/groonga/en/html/reference/executables.html +3 -3
  347. data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +58 -4
  348. data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +3 -3
  349. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +3 -3
  350. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +3 -3
  351. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +3 -3
  352. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +3 -3
  353. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +3 -3
  354. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +3 -3
  355. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +3 -3
  356. data/vendor/local/share/doc/groonga/en/html/reference/function.html +3 -3
  357. data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +3 -3
  358. data/vendor/local/share/doc/groonga/en/html/reference/functions/cast_loose.html +3 -3
  359. data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +3 -3
  360. data/vendor/local/share/doc/groonga/en/html/reference/functions/fuzzy_search.html +3 -3
  361. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +11 -19
  362. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +3 -3
  363. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +3 -3
  364. data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_full.html +3 -3
  365. data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_html.html +3 -3
  366. data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +3 -3
  367. data/vendor/local/share/doc/groonga/en/html/reference/functions/in_records.html +3 -3
  368. data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +3 -3
  369. data/vendor/local/share/doc/groonga/en/html/reference/functions/math_abs.html +3 -3
  370. data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +3 -3
  371. data/vendor/local/share/doc/groonga/en/html/reference/functions/number_classify.html +3 -3
  372. data/vendor/local/share/doc/groonga/en/html/reference/functions/prefix_rk_search.html +3 -3
  373. data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +3 -3
  374. data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +3 -3
  375. data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +3 -3
  376. data/vendor/local/share/doc/groonga/en/html/reference/functions/string_length.html +3 -3
  377. data/vendor/local/share/doc/groonga/en/html/reference/functions/string_substring.html +3 -3
  378. data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +3 -3
  379. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day.html +3 -3
  380. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day_of_week.html +3 -3
  381. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_hour.html +3 -3
  382. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_minute.html +3 -3
  383. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_month.html +3 -3
  384. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_second.html +3 -3
  385. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_week.html +3 -3
  386. data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_year.html +3 -3
  387. data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_find.html +3 -3
  388. data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_new.html +3 -3
  389. data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_size.html +3 -3
  390. data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_slice.html +3 -3
  391. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +3 -3
  392. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +3 -3
  393. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +3 -3
  394. data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +3 -3
  395. data/vendor/local/share/doc/groonga/en/html/reference/log.html +3 -3
  396. data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +3 -3
  397. data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_auto.html +3 -3
  398. data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_nfkc100.html +3 -3
  399. data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_nfkc51.html +3 -3
  400. data/vendor/local/share/doc/groonga/en/html/reference/operations.html +3 -3
  401. data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +3 -3
  402. data/vendor/local/share/doc/groonga/en/html/reference/operations/prefix_rk_search.html +3 -3
  403. data/vendor/local/share/doc/groonga/en/html/reference/output.html +3 -3
  404. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +3 -3
  405. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +3 -3
  406. data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +3 -3
  407. data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +3 -3
  408. data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +3 -3
  409. data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +3 -3
  410. data/vendor/local/share/doc/groonga/en/html/reference/sharding.html +3 -3
  411. data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +3 -3
  412. data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +3 -3
  413. data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +3 -3
  414. data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +3 -3
  415. data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +3 -3
  416. data/vendor/local/share/doc/groonga/en/html/reference/tables.html +3 -3
  417. data/vendor/local/share/doc/groonga/en/html/reference/token_filter/summary.html +3 -3
  418. data/vendor/local/share/doc/groonga/en/html/reference/token_filters.html +7 -7
  419. data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_nfkc100.html +3 -3
  420. data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_stem.html +3 -3
  421. data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_stop_word.html +3 -3
  422. data/vendor/local/share/doc/groonga/en/html/reference/tokenizer/summary.html +3 -3
  423. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +9 -6
  424. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram.html +3 -3
  425. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank.html +3 -3
  426. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol.html +3 -3
  427. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha.html +3 -3
  428. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha_digit.html +3 -3
  429. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol.html +3 -3
  430. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol_alpha.html +3 -3
  431. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol_alpha_digit.html +3 -3
  432. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_delimit.html +3 -3
  433. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_delimit_null.html +3 -3
  434. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_mecab.html +8 -8
  435. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_ngram.html +1005 -0
  436. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_pattern.html +240 -0
  437. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_regexp.html +21 -21
  438. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_table.html +246 -0
  439. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_trigram.html +20 -20
  440. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_unigram.html +15 -15
  441. data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +3 -3
  442. data/vendor/local/share/doc/groonga/en/html/reference/types.html +3 -3
  443. data/vendor/local/share/doc/groonga/en/html/reference/window_function.html +3 -3
  444. data/vendor/local/share/doc/groonga/en/html/reference/window_functions/record_number.html +3 -3
  445. data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_count.html +3 -3
  446. data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_record_number.html +3 -3
  447. data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_sum.html +3 -3
  448. data/vendor/local/share/doc/groonga/en/html/search.html +3 -3
  449. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  450. data/vendor/local/share/doc/groonga/en/html/server.html +3 -3
  451. data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +3 -3
  452. data/vendor/local/share/doc/groonga/en/html/server/http.html +3 -3
  453. data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +3 -3
  454. data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +3 -3
  455. data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +3 -3
  456. data/vendor/local/share/doc/groonga/en/html/server/memcached.html +3 -3
  457. data/vendor/local/share/doc/groonga/en/html/server/package.html +3 -3
  458. data/vendor/local/share/doc/groonga/en/html/spec.html +3 -3
  459. data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +3 -3
  460. data/vendor/local/share/doc/groonga/en/html/spec/search.html +3 -3
  461. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +3 -3
  462. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +3 -3
  463. data/vendor/local/share/doc/groonga/en/html/troubleshooting/how_to_analyze_error_message.html +3 -3
  464. data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +3 -3
  465. data/vendor/local/share/doc/groonga/en/html/tutorial.html +3 -3
  466. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +3 -3
  467. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +3 -3
  468. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +3 -3
  469. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +3 -3
  470. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +3 -3
  471. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +68 -6
  472. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +37 -4
  473. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +3 -3
  474. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +3 -3
  475. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +3 -3
  476. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +3 -3
  477. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  478. data/vendor/local/share/doc/groonga/ja/html/_static/documentation_options.js +1 -1
  479. data/vendor/local/share/doc/groonga/ja/html/characteristic.html +3 -3
  480. data/vendor/local/share/doc/groonga/ja/html/client.html +3 -3
  481. data/vendor/local/share/doc/groonga/ja/html/community.html +3 -3
  482. data/vendor/local/share/doc/groonga/ja/html/contribution.html +3 -3
  483. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +3 -3
  484. data/vendor/local/share/doc/groonga/ja/html/contribution/development/build.html +3 -3
  485. data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_autotools.html +3 -3
  486. data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_cmake.html +3 -3
  487. data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/windows_cmake.html +3 -3
  488. data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +3 -3
  489. data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +3 -3
  490. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +3 -3
  491. data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +3 -3
  492. data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +3 -3
  493. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +3 -3
  494. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +3 -3
  495. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +3 -3
  496. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +3 -3
  497. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +3 -3
  498. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +3 -3
  499. data/vendor/local/share/doc/groonga/ja/html/development.html +3 -3
  500. data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +3 -3
  501. data/vendor/local/share/doc/groonga/ja/html/genindex.html +3 -3
  502. data/vendor/local/share/doc/groonga/ja/html/index.html +11 -7
  503. data/vendor/local/share/doc/groonga/ja/html/install.html +5 -4
  504. data/vendor/local/share/doc/groonga/ja/html/install/centos.html +6 -6
  505. data/vendor/local/share/doc/groonga/ja/html/install/debian.html +69 -8
  506. data/vendor/local/share/doc/groonga/ja/html/install/docker.html +3 -3
  507. data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +6 -6
  508. data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +6 -6
  509. data/vendor/local/share/doc/groonga/ja/html/install/others.html +6 -6
  510. data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +6 -6
  511. data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +6 -6
  512. data/vendor/local/share/doc/groonga/ja/html/install/windows.html +12 -12
  513. data/vendor/local/share/doc/groonga/ja/html/limitations.html +3 -3
  514. data/vendor/local/share/doc/groonga/ja/html/news.html +494 -206
  515. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +3 -3
  516. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +3 -3
  517. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +3 -3
  518. data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +3 -3
  519. data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +3 -3
  520. data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +3 -3
  521. data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +3 -3
  522. data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +3 -3
  523. data/vendor/local/share/doc/groonga/ja/html/news/5.x.html +3 -3
  524. data/vendor/local/share/doc/groonga/ja/html/news/6.x.html +3 -3
  525. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +3 -3
  526. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  527. data/vendor/local/share/doc/groonga/ja/html/reference.html +9 -6
  528. data/vendor/local/share/doc/groonga/ja/html/reference/alias.html +3 -3
  529. data/vendor/local/share/doc/groonga/ja/html/reference/api.html +3 -3
  530. data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +3 -3
  531. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +3 -3
  532. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +3 -3
  533. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +3 -3
  534. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +3 -3
  535. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +3 -3
  536. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +3 -3
  537. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +3 -3
  538. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +3 -3
  539. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +3 -3
  540. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +3 -3
  541. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +3 -3
  542. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +3 -3
  543. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +3 -3
  544. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_inspect.html +3 -3
  545. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +3 -3
  546. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +3 -3
  547. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +3 -3
  548. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +3 -3
  549. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +3 -3
  550. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +3 -3
  551. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_thread.html +3 -3
  552. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +3 -3
  553. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +3 -3
  554. data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +3 -3
  555. data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +3 -3
  556. data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +3 -3
  557. data/vendor/local/share/doc/groonga/ja/html/reference/column.html +3 -3
  558. data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +3 -3
  559. data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +3 -3
  560. data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +3 -3
  561. data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +3 -3
  562. data/vendor/local/share/doc/groonga/ja/html/reference/command.html +3 -3
  563. data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +3 -3
  564. data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +3 -3
  565. data/vendor/local/share/doc/groonga/ja/html/reference/command/pretty_print.html +3 -3
  566. data/vendor/local/share/doc/groonga/ja/html/reference/command/request_id.html +3 -3
  567. data/vendor/local/share/doc/groonga/ja/html/reference/command/request_timeout.html +3 -3
  568. data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +3 -3
  569. data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +3 -3
  570. data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +3 -3
  571. data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +3 -3
  572. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_copy.html +3 -3
  573. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +3 -3
  574. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +3 -3
  575. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +3 -3
  576. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +3 -3
  577. data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_delete.html +3 -3
  578. data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_get.html +3 -3
  579. data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_set.html +3 -3
  580. data/vendor/local/share/doc/groonga/ja/html/reference/commands/database_unmap.html +3 -3
  581. data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +3 -3
  582. data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +3 -3
  583. data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +3 -3
  584. data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +3 -3
  585. data/vendor/local/share/doc/groonga/ja/html/reference/commands/io_flush.html +3 -3
  586. data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +3 -3
  587. data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_acquire.html +3 -3
  588. data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +3 -3
  589. data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_release.html +3 -3
  590. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +3 -3
  591. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +3 -3
  592. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +3 -3
  593. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +3 -3
  594. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_parameters.html +3 -3
  595. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +75 -4
  596. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_select.html +7 -7
  597. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_shard_list.html +3 -3
  598. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_table_remove.html +3 -3
  599. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +3 -3
  600. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +3 -3
  601. data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_exist.html +3 -3
  602. data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_inspect.html +73 -54
  603. data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_list.html +3 -3
  604. data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_remove.html +3 -3
  605. data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +3 -3
  606. data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +3 -3
  607. data/vendor/local/share/doc/groonga/ja/html/reference/commands/query_expand.html +3 -3
  608. data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +3 -3
  609. data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +3 -3
  610. data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +3 -3
  611. data/vendor/local/share/doc/groonga/ja/html/reference/commands/reindex.html +3 -3
  612. data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +3 -3
  613. data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +3 -3
  614. data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +3 -3
  615. data/vendor/local/share/doc/groonga/ja/html/reference/commands/schema.html +3 -3
  616. data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +7 -7
  617. data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +3 -3
  618. data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +3 -3
  619. data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +3 -3
  620. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_copy.html +3 -3
  621. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +3 -3
  622. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +3 -3
  623. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +3 -3
  624. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_rename.html +3 -3
  625. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +3 -3
  626. data/vendor/local/share/doc/groonga/ja/html/reference/commands/thread_limit.html +3 -3
  627. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +3 -3
  628. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +3 -3
  629. data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +3 -3
  630. data/vendor/local/share/doc/groonga/ja/html/reference/configuration.html +6 -6
  631. data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +3 -3
  632. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +57 -4
  633. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +3 -3
  634. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +3 -3
  635. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +3 -3
  636. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +3 -3
  637. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +3 -3
  638. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +3 -3
  639. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +3 -3
  640. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +3 -3
  641. data/vendor/local/share/doc/groonga/ja/html/reference/function.html +3 -3
  642. data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +3 -3
  643. data/vendor/local/share/doc/groonga/ja/html/reference/functions/cast_loose.html +3 -3
  644. data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +3 -3
  645. data/vendor/local/share/doc/groonga/ja/html/reference/functions/fuzzy_search.html +3 -3
  646. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +11 -19
  647. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +3 -3
  648. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +3 -3
  649. data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_full.html +3 -3
  650. data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_html.html +3 -3
  651. data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +3 -3
  652. data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_records.html +3 -3
  653. data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +3 -3
  654. data/vendor/local/share/doc/groonga/ja/html/reference/functions/math_abs.html +3 -3
  655. data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +3 -3
  656. data/vendor/local/share/doc/groonga/ja/html/reference/functions/number_classify.html +3 -3
  657. data/vendor/local/share/doc/groonga/ja/html/reference/functions/prefix_rk_search.html +3 -3
  658. data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +3 -3
  659. data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +3 -3
  660. data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +3 -3
  661. data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_length.html +3 -3
  662. data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_substring.html +3 -3
  663. data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +3 -3
  664. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day.html +3 -3
  665. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day_of_week.html +3 -3
  666. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_hour.html +3 -3
  667. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_minute.html +3 -3
  668. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_month.html +3 -3
  669. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_second.html +3 -3
  670. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_week.html +3 -3
  671. data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_year.html +3 -3
  672. data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_find.html +3 -3
  673. data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_new.html +3 -3
  674. data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_size.html +3 -3
  675. data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_slice.html +3 -3
  676. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +3 -3
  677. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +3 -3
  678. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +3 -3
  679. data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +3 -3
  680. data/vendor/local/share/doc/groonga/ja/html/reference/log.html +3 -3
  681. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +3 -3
  682. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_auto.html +3 -3
  683. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_nfkc100.html +3 -3
  684. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_nfkc51.html +3 -3
  685. data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +3 -3
  686. data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +3 -3
  687. data/vendor/local/share/doc/groonga/ja/html/reference/operations/prefix_rk_search.html +3 -3
  688. data/vendor/local/share/doc/groonga/ja/html/reference/output.html +3 -3
  689. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +3 -3
  690. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +3 -3
  691. data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +3 -3
  692. data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +3 -3
  693. data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +3 -3
  694. data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +3 -3
  695. data/vendor/local/share/doc/groonga/ja/html/reference/sharding.html +3 -3
  696. data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +3 -3
  697. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +3 -3
  698. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +3 -3
  699. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +3 -3
  700. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +3 -3
  701. data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +3 -3
  702. data/vendor/local/share/doc/groonga/ja/html/reference/token_filter/summary.html +3 -3
  703. data/vendor/local/share/doc/groonga/ja/html/reference/token_filters.html +7 -7
  704. data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_nfkc100.html +3 -3
  705. data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_stem.html +3 -3
  706. data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_stop_word.html +3 -3
  707. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizer/summary.html +3 -3
  708. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +9 -6
  709. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram.html +3 -3
  710. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank.html +3 -3
  711. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol.html +3 -3
  712. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha.html +3 -3
  713. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha_digit.html +3 -3
  714. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol.html +3 -3
  715. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol_alpha.html +3 -3
  716. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol_alpha_digit.html +3 -3
  717. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_delimit.html +3 -3
  718. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_delimit_null.html +3 -3
  719. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_mecab.html +8 -8
  720. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_ngram.html +998 -0
  721. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_pattern.html +240 -0
  722. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_regexp.html +21 -21
  723. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_table.html +242 -0
  724. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_trigram.html +20 -20
  725. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_unigram.html +15 -15
  726. data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +3 -3
  727. data/vendor/local/share/doc/groonga/ja/html/reference/types.html +3 -3
  728. data/vendor/local/share/doc/groonga/ja/html/reference/window_function.html +3 -3
  729. data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/record_number.html +3 -3
  730. data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_count.html +3 -3
  731. data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_record_number.html +3 -3
  732. data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_sum.html +3 -3
  733. data/vendor/local/share/doc/groonga/ja/html/search.html +3 -3
  734. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  735. data/vendor/local/share/doc/groonga/ja/html/server.html +3 -3
  736. data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +3 -3
  737. data/vendor/local/share/doc/groonga/ja/html/server/http.html +3 -3
  738. data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +3 -3
  739. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +3 -3
  740. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +3 -3
  741. data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +3 -3
  742. data/vendor/local/share/doc/groonga/ja/html/server/package.html +3 -3
  743. data/vendor/local/share/doc/groonga/ja/html/spec.html +3 -3
  744. data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +3 -3
  745. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +3 -3
  746. data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +3 -3
  747. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +3 -3
  748. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/how_to_analyze_error_message.html +3 -3
  749. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +3 -3
  750. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +3 -3
  751. data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +3 -3
  752. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +3 -3
  753. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +3 -3
  754. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +3 -3
  755. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +3 -3
  756. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +64 -6
  757. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +37 -4
  758. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +3 -3
  759. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +3 -3
  760. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +3 -3
  761. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +3 -3
  762. data/vendor/local/share/groonga/COPYING +502 -0
  763. data/vendor/local/share/groonga/mruby/LEGAL +58 -54
  764. data/vendor/local/share/license/mruby/AUTHORS +6 -2
  765. data/vendor/local/share/license/mruby/LEGAL +1 -1
  766. data/vendor/local/share/license/mruby/{MITL → LICENSE} +1 -1
  767. data/vendor/local/share/license/mruby/README.md +3 -3
  768. data/vendor/local/share/license/rapidjson/license.txt +57 -0
  769. metadata +126 -60
@@ -0,0 +1,181 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_INTERNAL_META_H_
16
+ #define RAPIDJSON_INTERNAL_META_H_
17
+
18
+ #include "../rapidjson.h"
19
+
20
+ #ifdef __GNUC__
21
+ RAPIDJSON_DIAG_PUSH
22
+ RAPIDJSON_DIAG_OFF(effc++)
23
+ #endif
24
+ #if defined(_MSC_VER)
25
+ RAPIDJSON_DIAG_PUSH
26
+ RAPIDJSON_DIAG_OFF(6334)
27
+ #endif
28
+
29
+ #if RAPIDJSON_HAS_CXX11_TYPETRAITS
30
+ #include <type_traits>
31
+ #endif
32
+
33
+ //@cond RAPIDJSON_INTERNAL
34
+ RAPIDJSON_NAMESPACE_BEGIN
35
+ namespace internal {
36
+
37
+ // Helper to wrap/convert arbitrary types to void, useful for arbitrary type matching
38
+ template <typename T> struct Void { typedef void Type; };
39
+
40
+ ///////////////////////////////////////////////////////////////////////////////
41
+ // BoolType, TrueType, FalseType
42
+ //
43
+ template <bool Cond> struct BoolType {
44
+ static const bool Value = Cond;
45
+ typedef BoolType Type;
46
+ };
47
+ typedef BoolType<true> TrueType;
48
+ typedef BoolType<false> FalseType;
49
+
50
+
51
+ ///////////////////////////////////////////////////////////////////////////////
52
+ // SelectIf, BoolExpr, NotExpr, AndExpr, OrExpr
53
+ //
54
+
55
+ template <bool C> struct SelectIfImpl { template <typename T1, typename T2> struct Apply { typedef T1 Type; }; };
56
+ template <> struct SelectIfImpl<false> { template <typename T1, typename T2> struct Apply { typedef T2 Type; }; };
57
+ template <bool C, typename T1, typename T2> struct SelectIfCond : SelectIfImpl<C>::template Apply<T1,T2> {};
58
+ template <typename C, typename T1, typename T2> struct SelectIf : SelectIfCond<C::Value, T1, T2> {};
59
+
60
+ template <bool Cond1, bool Cond2> struct AndExprCond : FalseType {};
61
+ template <> struct AndExprCond<true, true> : TrueType {};
62
+ template <bool Cond1, bool Cond2> struct OrExprCond : TrueType {};
63
+ template <> struct OrExprCond<false, false> : FalseType {};
64
+
65
+ template <typename C> struct BoolExpr : SelectIf<C,TrueType,FalseType>::Type {};
66
+ template <typename C> struct NotExpr : SelectIf<C,FalseType,TrueType>::Type {};
67
+ template <typename C1, typename C2> struct AndExpr : AndExprCond<C1::Value, C2::Value>::Type {};
68
+ template <typename C1, typename C2> struct OrExpr : OrExprCond<C1::Value, C2::Value>::Type {};
69
+
70
+
71
+ ///////////////////////////////////////////////////////////////////////////////
72
+ // AddConst, MaybeAddConst, RemoveConst
73
+ template <typename T> struct AddConst { typedef const T Type; };
74
+ template <bool Constify, typename T> struct MaybeAddConst : SelectIfCond<Constify, const T, T> {};
75
+ template <typename T> struct RemoveConst { typedef T Type; };
76
+ template <typename T> struct RemoveConst<const T> { typedef T Type; };
77
+
78
+
79
+ ///////////////////////////////////////////////////////////////////////////////
80
+ // IsSame, IsConst, IsMoreConst, IsPointer
81
+ //
82
+ template <typename T, typename U> struct IsSame : FalseType {};
83
+ template <typename T> struct IsSame<T, T> : TrueType {};
84
+
85
+ template <typename T> struct IsConst : FalseType {};
86
+ template <typename T> struct IsConst<const T> : TrueType {};
87
+
88
+ template <typename CT, typename T>
89
+ struct IsMoreConst
90
+ : AndExpr<IsSame<typename RemoveConst<CT>::Type, typename RemoveConst<T>::Type>,
91
+ BoolType<IsConst<CT>::Value >= IsConst<T>::Value> >::Type {};
92
+
93
+ template <typename T> struct IsPointer : FalseType {};
94
+ template <typename T> struct IsPointer<T*> : TrueType {};
95
+
96
+ ///////////////////////////////////////////////////////////////////////////////
97
+ // IsBaseOf
98
+ //
99
+ #if RAPIDJSON_HAS_CXX11_TYPETRAITS
100
+
101
+ template <typename B, typename D> struct IsBaseOf
102
+ : BoolType< ::std::is_base_of<B,D>::value> {};
103
+
104
+ #else // simplified version adopted from Boost
105
+
106
+ template<typename B, typename D> struct IsBaseOfImpl {
107
+ RAPIDJSON_STATIC_ASSERT(sizeof(B) != 0);
108
+ RAPIDJSON_STATIC_ASSERT(sizeof(D) != 0);
109
+
110
+ typedef char (&Yes)[1];
111
+ typedef char (&No) [2];
112
+
113
+ template <typename T>
114
+ static Yes Check(const D*, T);
115
+ static No Check(const B*, int);
116
+
117
+ struct Host {
118
+ operator const B*() const;
119
+ operator const D*();
120
+ };
121
+
122
+ enum { Value = (sizeof(Check(Host(), 0)) == sizeof(Yes)) };
123
+ };
124
+
125
+ template <typename B, typename D> struct IsBaseOf
126
+ : OrExpr<IsSame<B, D>, BoolExpr<IsBaseOfImpl<B, D> > >::Type {};
127
+
128
+ #endif // RAPIDJSON_HAS_CXX11_TYPETRAITS
129
+
130
+
131
+ //////////////////////////////////////////////////////////////////////////
132
+ // EnableIf / DisableIf
133
+ //
134
+ template <bool Condition, typename T = void> struct EnableIfCond { typedef T Type; };
135
+ template <typename T> struct EnableIfCond<false, T> { /* empty */ };
136
+
137
+ template <bool Condition, typename T = void> struct DisableIfCond { typedef T Type; };
138
+ template <typename T> struct DisableIfCond<true, T> { /* empty */ };
139
+
140
+ template <typename Condition, typename T = void>
141
+ struct EnableIf : EnableIfCond<Condition::Value, T> {};
142
+
143
+ template <typename Condition, typename T = void>
144
+ struct DisableIf : DisableIfCond<Condition::Value, T> {};
145
+
146
+ // SFINAE helpers
147
+ struct SfinaeTag {};
148
+ template <typename T> struct RemoveSfinaeTag;
149
+ template <typename T> struct RemoveSfinaeTag<SfinaeTag&(*)(T)> { typedef T Type; };
150
+
151
+ #define RAPIDJSON_REMOVEFPTR_(type) \
152
+ typename ::RAPIDJSON_NAMESPACE::internal::RemoveSfinaeTag \
153
+ < ::RAPIDJSON_NAMESPACE::internal::SfinaeTag&(*) type>::Type
154
+
155
+ #define RAPIDJSON_ENABLEIF(cond) \
156
+ typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \
157
+ <RAPIDJSON_REMOVEFPTR_(cond)>::Type * = NULL
158
+
159
+ #define RAPIDJSON_DISABLEIF(cond) \
160
+ typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \
161
+ <RAPIDJSON_REMOVEFPTR_(cond)>::Type * = NULL
162
+
163
+ #define RAPIDJSON_ENABLEIF_RETURN(cond,returntype) \
164
+ typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \
165
+ <RAPIDJSON_REMOVEFPTR_(cond), \
166
+ RAPIDJSON_REMOVEFPTR_(returntype)>::Type
167
+
168
+ #define RAPIDJSON_DISABLEIF_RETURN(cond,returntype) \
169
+ typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \
170
+ <RAPIDJSON_REMOVEFPTR_(cond), \
171
+ RAPIDJSON_REMOVEFPTR_(returntype)>::Type
172
+
173
+ } // namespace internal
174
+ RAPIDJSON_NAMESPACE_END
175
+ //@endcond
176
+
177
+ #if defined(__GNUC__) || defined(_MSC_VER)
178
+ RAPIDJSON_DIAG_POP
179
+ #endif
180
+
181
+ #endif // RAPIDJSON_INTERNAL_META_H_
@@ -0,0 +1,55 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_POW10_
16
+ #define RAPIDJSON_POW10_
17
+
18
+ #include "../rapidjson.h"
19
+
20
+ RAPIDJSON_NAMESPACE_BEGIN
21
+ namespace internal {
22
+
23
+ //! Computes integer powers of 10 in double (10.0^n).
24
+ /*! This function uses lookup table for fast and accurate results.
25
+ \param n non-negative exponent. Must <= 308.
26
+ \return 10.0^n
27
+ */
28
+ inline double Pow10(int n) {
29
+ static const double e[] = { // 1e-0...1e308: 309 * 8 bytes = 2472 bytes
30
+ 1e+0,
31
+ 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20,
32
+ 1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31, 1e+32, 1e+33, 1e+34, 1e+35, 1e+36, 1e+37, 1e+38, 1e+39, 1e+40,
33
+ 1e+41, 1e+42, 1e+43, 1e+44, 1e+45, 1e+46, 1e+47, 1e+48, 1e+49, 1e+50, 1e+51, 1e+52, 1e+53, 1e+54, 1e+55, 1e+56, 1e+57, 1e+58, 1e+59, 1e+60,
34
+ 1e+61, 1e+62, 1e+63, 1e+64, 1e+65, 1e+66, 1e+67, 1e+68, 1e+69, 1e+70, 1e+71, 1e+72, 1e+73, 1e+74, 1e+75, 1e+76, 1e+77, 1e+78, 1e+79, 1e+80,
35
+ 1e+81, 1e+82, 1e+83, 1e+84, 1e+85, 1e+86, 1e+87, 1e+88, 1e+89, 1e+90, 1e+91, 1e+92, 1e+93, 1e+94, 1e+95, 1e+96, 1e+97, 1e+98, 1e+99, 1e+100,
36
+ 1e+101,1e+102,1e+103,1e+104,1e+105,1e+106,1e+107,1e+108,1e+109,1e+110,1e+111,1e+112,1e+113,1e+114,1e+115,1e+116,1e+117,1e+118,1e+119,1e+120,
37
+ 1e+121,1e+122,1e+123,1e+124,1e+125,1e+126,1e+127,1e+128,1e+129,1e+130,1e+131,1e+132,1e+133,1e+134,1e+135,1e+136,1e+137,1e+138,1e+139,1e+140,
38
+ 1e+141,1e+142,1e+143,1e+144,1e+145,1e+146,1e+147,1e+148,1e+149,1e+150,1e+151,1e+152,1e+153,1e+154,1e+155,1e+156,1e+157,1e+158,1e+159,1e+160,
39
+ 1e+161,1e+162,1e+163,1e+164,1e+165,1e+166,1e+167,1e+168,1e+169,1e+170,1e+171,1e+172,1e+173,1e+174,1e+175,1e+176,1e+177,1e+178,1e+179,1e+180,
40
+ 1e+181,1e+182,1e+183,1e+184,1e+185,1e+186,1e+187,1e+188,1e+189,1e+190,1e+191,1e+192,1e+193,1e+194,1e+195,1e+196,1e+197,1e+198,1e+199,1e+200,
41
+ 1e+201,1e+202,1e+203,1e+204,1e+205,1e+206,1e+207,1e+208,1e+209,1e+210,1e+211,1e+212,1e+213,1e+214,1e+215,1e+216,1e+217,1e+218,1e+219,1e+220,
42
+ 1e+221,1e+222,1e+223,1e+224,1e+225,1e+226,1e+227,1e+228,1e+229,1e+230,1e+231,1e+232,1e+233,1e+234,1e+235,1e+236,1e+237,1e+238,1e+239,1e+240,
43
+ 1e+241,1e+242,1e+243,1e+244,1e+245,1e+246,1e+247,1e+248,1e+249,1e+250,1e+251,1e+252,1e+253,1e+254,1e+255,1e+256,1e+257,1e+258,1e+259,1e+260,
44
+ 1e+261,1e+262,1e+263,1e+264,1e+265,1e+266,1e+267,1e+268,1e+269,1e+270,1e+271,1e+272,1e+273,1e+274,1e+275,1e+276,1e+277,1e+278,1e+279,1e+280,
45
+ 1e+281,1e+282,1e+283,1e+284,1e+285,1e+286,1e+287,1e+288,1e+289,1e+290,1e+291,1e+292,1e+293,1e+294,1e+295,1e+296,1e+297,1e+298,1e+299,1e+300,
46
+ 1e+301,1e+302,1e+303,1e+304,1e+305,1e+306,1e+307,1e+308
47
+ };
48
+ RAPIDJSON_ASSERT(n >= 0 && n <= 308);
49
+ return e[n];
50
+ }
51
+
52
+ } // namespace internal
53
+ RAPIDJSON_NAMESPACE_END
54
+
55
+ #endif // RAPIDJSON_POW10_
@@ -0,0 +1,701 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_INTERNAL_REGEX_H_
16
+ #define RAPIDJSON_INTERNAL_REGEX_H_
17
+
18
+ #include "../allocators.h"
19
+ #include "../stream.h"
20
+ #include "stack.h"
21
+
22
+ #ifdef __clang__
23
+ RAPIDJSON_DIAG_PUSH
24
+ RAPIDJSON_DIAG_OFF(padded)
25
+ RAPIDJSON_DIAG_OFF(switch-enum)
26
+ RAPIDJSON_DIAG_OFF(implicit-fallthrough)
27
+ #endif
28
+
29
+ #ifdef __GNUC__
30
+ RAPIDJSON_DIAG_PUSH
31
+ RAPIDJSON_DIAG_OFF(effc++)
32
+ #endif
33
+
34
+ #ifdef _MSC_VER
35
+ RAPIDJSON_DIAG_PUSH
36
+ RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated
37
+ #endif
38
+
39
+ #ifndef RAPIDJSON_REGEX_VERBOSE
40
+ #define RAPIDJSON_REGEX_VERBOSE 0
41
+ #endif
42
+
43
+ RAPIDJSON_NAMESPACE_BEGIN
44
+ namespace internal {
45
+
46
+ ///////////////////////////////////////////////////////////////////////////////
47
+ // GenericRegex
48
+
49
+ static const SizeType kRegexInvalidState = ~SizeType(0); //!< Represents an invalid index in GenericRegex::State::out, out1
50
+ static const SizeType kRegexInvalidRange = ~SizeType(0);
51
+
52
+ //! Regular expression engine with subset of ECMAscript grammar.
53
+ /*!
54
+ Supported regular expression syntax:
55
+ - \c ab Concatenation
56
+ - \c a|b Alternation
57
+ - \c a? Zero or one
58
+ - \c a* Zero or more
59
+ - \c a+ One or more
60
+ - \c a{3} Exactly 3 times
61
+ - \c a{3,} At least 3 times
62
+ - \c a{3,5} 3 to 5 times
63
+ - \c (ab) Grouping
64
+ - \c ^a At the beginning
65
+ - \c a$ At the end
66
+ - \c . Any character
67
+ - \c [abc] Character classes
68
+ - \c [a-c] Character class range
69
+ - \c [a-z0-9_] Character class combination
70
+ - \c [^abc] Negated character classes
71
+ - \c [^a-c] Negated character class range
72
+ - \c [\b] Backspace (U+0008)
73
+ - \c \\| \\\\ ... Escape characters
74
+ - \c \\f Form feed (U+000C)
75
+ - \c \\n Line feed (U+000A)
76
+ - \c \\r Carriage return (U+000D)
77
+ - \c \\t Tab (U+0009)
78
+ - \c \\v Vertical tab (U+000B)
79
+
80
+ \note This is a Thompson NFA engine, implemented with reference to
81
+ Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).",
82
+ https://swtch.com/~rsc/regexp/regexp1.html
83
+ */
84
+ template <typename Encoding, typename Allocator = CrtAllocator>
85
+ class GenericRegex {
86
+ public:
87
+ typedef typename Encoding::Ch Ch;
88
+
89
+ GenericRegex(const Ch* source, Allocator* allocator = 0) :
90
+ states_(allocator, 256), ranges_(allocator, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(),
91
+ stateSet_(), state0_(allocator, 0), state1_(allocator, 0), anchorBegin_(), anchorEnd_()
92
+ {
93
+ GenericStringStream<Encoding> ss(source);
94
+ DecodedStream<GenericStringStream<Encoding> > ds(ss);
95
+ Parse(ds);
96
+ }
97
+
98
+ ~GenericRegex() {
99
+ Allocator::Free(stateSet_);
100
+ }
101
+
102
+ bool IsValid() const {
103
+ return root_ != kRegexInvalidState;
104
+ }
105
+
106
+ template <typename InputStream>
107
+ bool Match(InputStream& is) const {
108
+ return SearchWithAnchoring(is, true, true);
109
+ }
110
+
111
+ bool Match(const Ch* s) const {
112
+ GenericStringStream<Encoding> is(s);
113
+ return Match(is);
114
+ }
115
+
116
+ template <typename InputStream>
117
+ bool Search(InputStream& is) const {
118
+ return SearchWithAnchoring(is, anchorBegin_, anchorEnd_);
119
+ }
120
+
121
+ bool Search(const Ch* s) const {
122
+ GenericStringStream<Encoding> is(s);
123
+ return Search(is);
124
+ }
125
+
126
+ private:
127
+ enum Operator {
128
+ kZeroOrOne,
129
+ kZeroOrMore,
130
+ kOneOrMore,
131
+ kConcatenation,
132
+ kAlternation,
133
+ kLeftParenthesis
134
+ };
135
+
136
+ static const unsigned kAnyCharacterClass = 0xFFFFFFFF; //!< For '.'
137
+ static const unsigned kRangeCharacterClass = 0xFFFFFFFE;
138
+ static const unsigned kRangeNegationFlag = 0x80000000;
139
+
140
+ struct Range {
141
+ unsigned start; //
142
+ unsigned end;
143
+ SizeType next;
144
+ };
145
+
146
+ struct State {
147
+ SizeType out; //!< Equals to kInvalid for matching state
148
+ SizeType out1; //!< Equals to non-kInvalid for split
149
+ SizeType rangeStart;
150
+ unsigned codepoint;
151
+ };
152
+
153
+ struct Frag {
154
+ Frag(SizeType s, SizeType o, SizeType m) : start(s), out(o), minIndex(m) {}
155
+ SizeType start;
156
+ SizeType out; //!< link-list of all output states
157
+ SizeType minIndex;
158
+ };
159
+
160
+ template <typename SourceStream>
161
+ class DecodedStream {
162
+ public:
163
+ DecodedStream(SourceStream& ss) : ss_(ss), codepoint_() { Decode(); }
164
+ unsigned Peek() { return codepoint_; }
165
+ unsigned Take() {
166
+ unsigned c = codepoint_;
167
+ if (c) // No further decoding when '\0'
168
+ Decode();
169
+ return c;
170
+ }
171
+
172
+ private:
173
+ void Decode() {
174
+ if (!Encoding::Decode(ss_, &codepoint_))
175
+ codepoint_ = 0;
176
+ }
177
+
178
+ SourceStream& ss_;
179
+ unsigned codepoint_;
180
+ };
181
+
182
+ State& GetState(SizeType index) {
183
+ RAPIDJSON_ASSERT(index < stateCount_);
184
+ return states_.template Bottom<State>()[index];
185
+ }
186
+
187
+ const State& GetState(SizeType index) const {
188
+ RAPIDJSON_ASSERT(index < stateCount_);
189
+ return states_.template Bottom<State>()[index];
190
+ }
191
+
192
+ Range& GetRange(SizeType index) {
193
+ RAPIDJSON_ASSERT(index < rangeCount_);
194
+ return ranges_.template Bottom<Range>()[index];
195
+ }
196
+
197
+ const Range& GetRange(SizeType index) const {
198
+ RAPIDJSON_ASSERT(index < rangeCount_);
199
+ return ranges_.template Bottom<Range>()[index];
200
+ }
201
+
202
+ template <typename InputStream>
203
+ void Parse(DecodedStream<InputStream>& ds) {
204
+ Allocator allocator;
205
+ Stack<Allocator> operandStack(&allocator, 256); // Frag
206
+ Stack<Allocator> operatorStack(&allocator, 256); // Operator
207
+ Stack<Allocator> atomCountStack(&allocator, 256); // unsigned (Atom per parenthesis)
208
+
209
+ *atomCountStack.template Push<unsigned>() = 0;
210
+
211
+ unsigned codepoint;
212
+ while (ds.Peek() != 0) {
213
+ switch (codepoint = ds.Take()) {
214
+ case '^':
215
+ anchorBegin_ = true;
216
+ break;
217
+
218
+ case '$':
219
+ anchorEnd_ = true;
220
+ break;
221
+
222
+ case '|':
223
+ while (!operatorStack.Empty() && *operatorStack.template Top<Operator>() < kAlternation)
224
+ if (!Eval(operandStack, *operatorStack.template Pop<Operator>(1)))
225
+ return;
226
+ *operatorStack.template Push<Operator>() = kAlternation;
227
+ *atomCountStack.template Top<unsigned>() = 0;
228
+ break;
229
+
230
+ case '(':
231
+ *operatorStack.template Push<Operator>() = kLeftParenthesis;
232
+ *atomCountStack.template Push<unsigned>() = 0;
233
+ break;
234
+
235
+ case ')':
236
+ while (!operatorStack.Empty() && *operatorStack.template Top<Operator>() != kLeftParenthesis)
237
+ if (!Eval(operandStack, *operatorStack.template Pop<Operator>(1)))
238
+ return;
239
+ if (operatorStack.Empty())
240
+ return;
241
+ operatorStack.template Pop<Operator>(1);
242
+ atomCountStack.template Pop<unsigned>(1);
243
+ ImplicitConcatenation(atomCountStack, operatorStack);
244
+ break;
245
+
246
+ case '?':
247
+ if (!Eval(operandStack, kZeroOrOne))
248
+ return;
249
+ break;
250
+
251
+ case '*':
252
+ if (!Eval(operandStack, kZeroOrMore))
253
+ return;
254
+ break;
255
+
256
+ case '+':
257
+ if (!Eval(operandStack, kOneOrMore))
258
+ return;
259
+ break;
260
+
261
+ case '{':
262
+ {
263
+ unsigned n, m;
264
+ if (!ParseUnsigned(ds, &n))
265
+ return;
266
+
267
+ if (ds.Peek() == ',') {
268
+ ds.Take();
269
+ if (ds.Peek() == '}')
270
+ m = kInfinityQuantifier;
271
+ else if (!ParseUnsigned(ds, &m) || m < n)
272
+ return;
273
+ }
274
+ else
275
+ m = n;
276
+
277
+ if (!EvalQuantifier(operandStack, n, m) || ds.Peek() != '}')
278
+ return;
279
+ ds.Take();
280
+ }
281
+ break;
282
+
283
+ case '.':
284
+ PushOperand(operandStack, kAnyCharacterClass);
285
+ ImplicitConcatenation(atomCountStack, operatorStack);
286
+ break;
287
+
288
+ case '[':
289
+ {
290
+ SizeType range;
291
+ if (!ParseRange(ds, &range))
292
+ return;
293
+ SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass);
294
+ GetState(s).rangeStart = range;
295
+ *operandStack.template Push<Frag>() = Frag(s, s, s);
296
+ }
297
+ ImplicitConcatenation(atomCountStack, operatorStack);
298
+ break;
299
+
300
+ case '\\': // Escape character
301
+ if (!CharacterEscape(ds, &codepoint))
302
+ return; // Unsupported escape character
303
+ // fall through to default
304
+
305
+ default: // Pattern character
306
+ PushOperand(operandStack, codepoint);
307
+ ImplicitConcatenation(atomCountStack, operatorStack);
308
+ }
309
+ }
310
+
311
+ while (!operatorStack.Empty())
312
+ if (!Eval(operandStack, *operatorStack.template Pop<Operator>(1)))
313
+ return;
314
+
315
+ // Link the operand to matching state.
316
+ if (operandStack.GetSize() == sizeof(Frag)) {
317
+ Frag* e = operandStack.template Pop<Frag>(1);
318
+ Patch(e->out, NewState(kRegexInvalidState, kRegexInvalidState, 0));
319
+ root_ = e->start;
320
+
321
+ #if RAPIDJSON_REGEX_VERBOSE
322
+ printf("root: %d\n", root_);
323
+ for (SizeType i = 0; i < stateCount_ ; i++) {
324
+ State& s = GetState(i);
325
+ printf("[%2d] out: %2d out1: %2d c: '%c'\n", i, s.out, s.out1, (char)s.codepoint);
326
+ }
327
+ printf("\n");
328
+ #endif
329
+ }
330
+
331
+ // Preallocate buffer for SearchWithAnchoring()
332
+ RAPIDJSON_ASSERT(stateSet_ == 0);
333
+ if (stateCount_ > 0) {
334
+ stateSet_ = static_cast<unsigned*>(states_.GetAllocator().Malloc(GetStateSetSize()));
335
+ state0_.template Reserve<SizeType>(stateCount_);
336
+ state1_.template Reserve<SizeType>(stateCount_);
337
+ }
338
+ }
339
+
340
+ SizeType NewState(SizeType out, SizeType out1, unsigned codepoint) {
341
+ State* s = states_.template Push<State>();
342
+ s->out = out;
343
+ s->out1 = out1;
344
+ s->codepoint = codepoint;
345
+ s->rangeStart = kRegexInvalidRange;
346
+ return stateCount_++;
347
+ }
348
+
349
+ void PushOperand(Stack<Allocator>& operandStack, unsigned codepoint) {
350
+ SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint);
351
+ *operandStack.template Push<Frag>() = Frag(s, s, s);
352
+ }
353
+
354
+ void ImplicitConcatenation(Stack<Allocator>& atomCountStack, Stack<Allocator>& operatorStack) {
355
+ if (*atomCountStack.template Top<unsigned>())
356
+ *operatorStack.template Push<Operator>() = kConcatenation;
357
+ (*atomCountStack.template Top<unsigned>())++;
358
+ }
359
+
360
+ SizeType Append(SizeType l1, SizeType l2) {
361
+ SizeType old = l1;
362
+ while (GetState(l1).out != kRegexInvalidState)
363
+ l1 = GetState(l1).out;
364
+ GetState(l1).out = l2;
365
+ return old;
366
+ }
367
+
368
+ void Patch(SizeType l, SizeType s) {
369
+ for (SizeType next; l != kRegexInvalidState; l = next) {
370
+ next = GetState(l).out;
371
+ GetState(l).out = s;
372
+ }
373
+ }
374
+
375
+ bool Eval(Stack<Allocator>& operandStack, Operator op) {
376
+ switch (op) {
377
+ case kConcatenation:
378
+ RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag) * 2);
379
+ {
380
+ Frag e2 = *operandStack.template Pop<Frag>(1);
381
+ Frag e1 = *operandStack.template Pop<Frag>(1);
382
+ Patch(e1.out, e2.start);
383
+ *operandStack.template Push<Frag>() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex));
384
+ }
385
+ return true;
386
+
387
+ case kAlternation:
388
+ if (operandStack.GetSize() >= sizeof(Frag) * 2) {
389
+ Frag e2 = *operandStack.template Pop<Frag>(1);
390
+ Frag e1 = *operandStack.template Pop<Frag>(1);
391
+ SizeType s = NewState(e1.start, e2.start, 0);
392
+ *operandStack.template Push<Frag>() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex));
393
+ return true;
394
+ }
395
+ return false;
396
+
397
+ case kZeroOrOne:
398
+ if (operandStack.GetSize() >= sizeof(Frag)) {
399
+ Frag e = *operandStack.template Pop<Frag>(1);
400
+ SizeType s = NewState(kRegexInvalidState, e.start, 0);
401
+ *operandStack.template Push<Frag>() = Frag(s, Append(e.out, s), e.minIndex);
402
+ return true;
403
+ }
404
+ return false;
405
+
406
+ case kZeroOrMore:
407
+ if (operandStack.GetSize() >= sizeof(Frag)) {
408
+ Frag e = *operandStack.template Pop<Frag>(1);
409
+ SizeType s = NewState(kRegexInvalidState, e.start, 0);
410
+ Patch(e.out, s);
411
+ *operandStack.template Push<Frag>() = Frag(s, s, e.minIndex);
412
+ return true;
413
+ }
414
+ return false;
415
+
416
+ default:
417
+ RAPIDJSON_ASSERT(op == kOneOrMore);
418
+ if (operandStack.GetSize() >= sizeof(Frag)) {
419
+ Frag e = *operandStack.template Pop<Frag>(1);
420
+ SizeType s = NewState(kRegexInvalidState, e.start, 0);
421
+ Patch(e.out, s);
422
+ *operandStack.template Push<Frag>() = Frag(e.start, s, e.minIndex);
423
+ return true;
424
+ }
425
+ return false;
426
+ }
427
+ }
428
+
429
+ bool EvalQuantifier(Stack<Allocator>& operandStack, unsigned n, unsigned m) {
430
+ RAPIDJSON_ASSERT(n <= m);
431
+ RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag));
432
+
433
+ if (n == 0) {
434
+ if (m == 0) // a{0} not support
435
+ return false;
436
+ else if (m == kInfinityQuantifier)
437
+ Eval(operandStack, kZeroOrMore); // a{0,} -> a*
438
+ else {
439
+ Eval(operandStack, kZeroOrOne); // a{0,5} -> a?
440
+ for (unsigned i = 0; i < m - 1; i++)
441
+ CloneTopOperand(operandStack); // a{0,5} -> a? a? a? a? a?
442
+ for (unsigned i = 0; i < m - 1; i++)
443
+ Eval(operandStack, kConcatenation); // a{0,5} -> a?a?a?a?a?
444
+ }
445
+ return true;
446
+ }
447
+
448
+ for (unsigned i = 0; i < n - 1; i++) // a{3} -> a a a
449
+ CloneTopOperand(operandStack);
450
+
451
+ if (m == kInfinityQuantifier)
452
+ Eval(operandStack, kOneOrMore); // a{3,} -> a a a+
453
+ else if (m > n) {
454
+ CloneTopOperand(operandStack); // a{3,5} -> a a a a
455
+ Eval(operandStack, kZeroOrOne); // a{3,5} -> a a a a?
456
+ for (unsigned i = n; i < m - 1; i++)
457
+ CloneTopOperand(operandStack); // a{3,5} -> a a a a? a?
458
+ for (unsigned i = n; i < m; i++)
459
+ Eval(operandStack, kConcatenation); // a{3,5} -> a a aa?a?
460
+ }
461
+
462
+ for (unsigned i = 0; i < n - 1; i++)
463
+ Eval(operandStack, kConcatenation); // a{3} -> aaa, a{3,} -> aaa+, a{3.5} -> aaaa?a?
464
+
465
+ return true;
466
+ }
467
+
468
+ static SizeType Min(SizeType a, SizeType b) { return a < b ? a : b; }
469
+
470
+ void CloneTopOperand(Stack<Allocator>& operandStack) {
471
+ const Frag src = *operandStack.template Top<Frag>(); // Copy constructor to prevent invalidation
472
+ SizeType count = stateCount_ - src.minIndex; // Assumes top operand contains states in [src->minIndex, stateCount_)
473
+ State* s = states_.template Push<State>(count);
474
+ memcpy(s, &GetState(src.minIndex), count * sizeof(State));
475
+ for (SizeType j = 0; j < count; j++) {
476
+ if (s[j].out != kRegexInvalidState)
477
+ s[j].out += count;
478
+ if (s[j].out1 != kRegexInvalidState)
479
+ s[j].out1 += count;
480
+ }
481
+ *operandStack.template Push<Frag>() = Frag(src.start + count, src.out + count, src.minIndex + count);
482
+ stateCount_ += count;
483
+ }
484
+
485
+ template <typename InputStream>
486
+ bool ParseUnsigned(DecodedStream<InputStream>& ds, unsigned* u) {
487
+ unsigned r = 0;
488
+ if (ds.Peek() < '0' || ds.Peek() > '9')
489
+ return false;
490
+ while (ds.Peek() >= '0' && ds.Peek() <= '9') {
491
+ if (r >= 429496729 && ds.Peek() > '5') // 2^32 - 1 = 4294967295
492
+ return false; // overflow
493
+ r = r * 10 + (ds.Take() - '0');
494
+ }
495
+ *u = r;
496
+ return true;
497
+ }
498
+
499
+ template <typename InputStream>
500
+ bool ParseRange(DecodedStream<InputStream>& ds, SizeType* range) {
501
+ bool isBegin = true;
502
+ bool negate = false;
503
+ int step = 0;
504
+ SizeType start = kRegexInvalidRange;
505
+ SizeType current = kRegexInvalidRange;
506
+ unsigned codepoint;
507
+ while ((codepoint = ds.Take()) != 0) {
508
+ if (isBegin) {
509
+ isBegin = false;
510
+ if (codepoint == '^') {
511
+ negate = true;
512
+ continue;
513
+ }
514
+ }
515
+
516
+ switch (codepoint) {
517
+ case ']':
518
+ if (start == kRegexInvalidRange)
519
+ return false; // Error: nothing inside []
520
+ if (step == 2) { // Add trailing '-'
521
+ SizeType r = NewRange('-');
522
+ RAPIDJSON_ASSERT(current != kRegexInvalidRange);
523
+ GetRange(current).next = r;
524
+ }
525
+ if (negate)
526
+ GetRange(start).start |= kRangeNegationFlag;
527
+ *range = start;
528
+ return true;
529
+
530
+ case '\\':
531
+ if (ds.Peek() == 'b') {
532
+ ds.Take();
533
+ codepoint = 0x0008; // Escape backspace character
534
+ }
535
+ else if (!CharacterEscape(ds, &codepoint))
536
+ return false;
537
+ // fall through to default
538
+
539
+ default:
540
+ switch (step) {
541
+ case 1:
542
+ if (codepoint == '-') {
543
+ step++;
544
+ break;
545
+ }
546
+ // fall through to step 0 for other characters
547
+
548
+ case 0:
549
+ {
550
+ SizeType r = NewRange(codepoint);
551
+ if (current != kRegexInvalidRange)
552
+ GetRange(current).next = r;
553
+ if (start == kRegexInvalidRange)
554
+ start = r;
555
+ current = r;
556
+ }
557
+ step = 1;
558
+ break;
559
+
560
+ default:
561
+ RAPIDJSON_ASSERT(step == 2);
562
+ GetRange(current).end = codepoint;
563
+ step = 0;
564
+ }
565
+ }
566
+ }
567
+ return false;
568
+ }
569
+
570
+ SizeType NewRange(unsigned codepoint) {
571
+ Range* r = ranges_.template Push<Range>();
572
+ r->start = r->end = codepoint;
573
+ r->next = kRegexInvalidRange;
574
+ return rangeCount_++;
575
+ }
576
+
577
+ template <typename InputStream>
578
+ bool CharacterEscape(DecodedStream<InputStream>& ds, unsigned* escapedCodepoint) {
579
+ unsigned codepoint;
580
+ switch (codepoint = ds.Take()) {
581
+ case '^':
582
+ case '$':
583
+ case '|':
584
+ case '(':
585
+ case ')':
586
+ case '?':
587
+ case '*':
588
+ case '+':
589
+ case '.':
590
+ case '[':
591
+ case ']':
592
+ case '{':
593
+ case '}':
594
+ case '\\':
595
+ *escapedCodepoint = codepoint; return true;
596
+ case 'f': *escapedCodepoint = 0x000C; return true;
597
+ case 'n': *escapedCodepoint = 0x000A; return true;
598
+ case 'r': *escapedCodepoint = 0x000D; return true;
599
+ case 't': *escapedCodepoint = 0x0009; return true;
600
+ case 'v': *escapedCodepoint = 0x000B; return true;
601
+ default:
602
+ return false; // Unsupported escape character
603
+ }
604
+ }
605
+
606
+ template <typename InputStream>
607
+ bool SearchWithAnchoring(InputStream& is, bool anchorBegin, bool anchorEnd) const {
608
+ RAPIDJSON_ASSERT(IsValid());
609
+ DecodedStream<InputStream> ds(is);
610
+
611
+ state0_.Clear();
612
+ Stack<Allocator> *current = &state0_, *next = &state1_;
613
+ const size_t stateSetSize = GetStateSetSize();
614
+ std::memset(stateSet_, 0, stateSetSize);
615
+
616
+ bool matched = AddState(*current, root_);
617
+ unsigned codepoint;
618
+ while (!current->Empty() && (codepoint = ds.Take()) != 0) {
619
+ std::memset(stateSet_, 0, stateSetSize);
620
+ next->Clear();
621
+ matched = false;
622
+ for (const SizeType* s = current->template Bottom<SizeType>(); s != current->template End<SizeType>(); ++s) {
623
+ const State& sr = GetState(*s);
624
+ if (sr.codepoint == codepoint ||
625
+ sr.codepoint == kAnyCharacterClass ||
626
+ (sr.codepoint == kRangeCharacterClass && MatchRange(sr.rangeStart, codepoint)))
627
+ {
628
+ matched = AddState(*next, sr.out) || matched;
629
+ if (!anchorEnd && matched)
630
+ return true;
631
+ }
632
+ if (!anchorBegin)
633
+ AddState(*next, root_);
634
+ }
635
+ internal::Swap(current, next);
636
+ }
637
+
638
+ return matched;
639
+ }
640
+
641
+ size_t GetStateSetSize() const {
642
+ return (stateCount_ + 31) / 32 * 4;
643
+ }
644
+
645
+ // Return whether the added states is a match state
646
+ bool AddState(Stack<Allocator>& l, SizeType index) const {
647
+ RAPIDJSON_ASSERT(index != kRegexInvalidState);
648
+
649
+ const State& s = GetState(index);
650
+ if (s.out1 != kRegexInvalidState) { // Split
651
+ bool matched = AddState(l, s.out);
652
+ return AddState(l, s.out1) || matched;
653
+ }
654
+ else if (!(stateSet_[index >> 5] & (1 << (index & 31)))) {
655
+ stateSet_[index >> 5] |= (1 << (index & 31));
656
+ *l.template PushUnsafe<SizeType>() = index;
657
+ }
658
+ return s.out == kRegexInvalidState; // by using PushUnsafe() above, we can ensure s is not validated due to reallocation.
659
+ }
660
+
661
+ bool MatchRange(SizeType rangeIndex, unsigned codepoint) const {
662
+ bool yes = (GetRange(rangeIndex).start & kRangeNegationFlag) == 0;
663
+ while (rangeIndex != kRegexInvalidRange) {
664
+ const Range& r = GetRange(rangeIndex);
665
+ if (codepoint >= (r.start & ~kRangeNegationFlag) && codepoint <= r.end)
666
+ return yes;
667
+ rangeIndex = r.next;
668
+ }
669
+ return !yes;
670
+ }
671
+
672
+ Stack<Allocator> states_;
673
+ Stack<Allocator> ranges_;
674
+ SizeType root_;
675
+ SizeType stateCount_;
676
+ SizeType rangeCount_;
677
+
678
+ static const unsigned kInfinityQuantifier = ~0u;
679
+
680
+ // For SearchWithAnchoring()
681
+ uint32_t* stateSet_; // allocated by states_.GetAllocator()
682
+ mutable Stack<Allocator> state0_;
683
+ mutable Stack<Allocator> state1_;
684
+ bool anchorBegin_;
685
+ bool anchorEnd_;
686
+ };
687
+
688
+ typedef GenericRegex<UTF8<> > Regex;
689
+
690
+ } // namespace internal
691
+ RAPIDJSON_NAMESPACE_END
692
+
693
+ #ifdef __clang__
694
+ RAPIDJSON_DIAG_POP
695
+ #endif
696
+
697
+ #ifdef _MSC_VER
698
+ RAPIDJSON_DIAG_POP
699
+ #endif
700
+
701
+ #endif // RAPIDJSON_INTERNAL_REGEX_H_