@port-labs/jq-node-bindings 0.0.13 → 0.0.15-dev1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/README.md +6 -1
  2. package/binding.gyp +41 -19
  3. package/configure +1 -1
  4. package/deps/jq/.gitattributes +12 -0
  5. package/deps/jq/AUTHORS +149 -43
  6. package/deps/jq/COPYING +75 -1
  7. package/deps/jq/ChangeLog +2 -2
  8. package/deps/jq/Makefile.am +106 -65
  9. package/deps/jq/NEWS.md +391 -0
  10. package/deps/jq/README.md +54 -52
  11. package/deps/jq/SECURITY.md +7 -0
  12. package/deps/jq/compile-ios.sh +106 -102
  13. package/deps/jq/configure.ac +72 -59
  14. package/deps/jq/docs/Pipfile +14 -0
  15. package/deps/jq/docs/Pipfile.lock +415 -0
  16. package/deps/jq/docs/README.md +15 -14
  17. package/deps/jq/docs/build_manpage.py +251 -0
  18. package/deps/jq/docs/build_mantests.py +21 -0
  19. package/deps/jq/docs/build_website.py +95 -0
  20. package/deps/jq/docs/content/download/default.yml +249 -0
  21. package/deps/jq/docs/content/index.yml +83 -0
  22. package/deps/jq/docs/content/{3.manual/v1.6 → manual/dev}/manual.yml +992 -452
  23. package/deps/jq/docs/content/{3.manual → manual}/v1.3/manual.yml +105 -116
  24. package/deps/jq/docs/content/{3.manual → manual}/v1.4/manual.yml +122 -129
  25. package/deps/jq/docs/content/{3.manual → manual}/v1.5/manual.yml +313 -262
  26. package/deps/jq/docs/content/{3.manual → manual/v1.6}/manual.yml +407 -332
  27. package/deps/jq/docs/content/manual/v1.7/manual.yml +3697 -0
  28. package/deps/jq/docs/content/tutorial/default.yml +337 -0
  29. package/deps/jq/docs/manual_schema.yml +60 -0
  30. package/deps/jq/docs/public/css/style.css +99 -0
  31. package/deps/jq/docs/public/icon.png +0 -0
  32. package/deps/jq/docs/public/icon.svg +1 -0
  33. package/deps/jq/docs/public/jq.svg +1 -0
  34. package/deps/jq/docs/public/js/manual-search.js +31 -49
  35. package/deps/jq/docs/templates/default.html.j2 +31 -0
  36. package/deps/jq/docs/templates/index.html.j2 +58 -0
  37. package/deps/jq/docs/templates/manual.html.j2 +120 -0
  38. package/deps/jq/docs/templates/shared/_footer.html.j2 +14 -0
  39. package/deps/jq/docs/templates/shared/_head.html.j2 +23 -0
  40. package/deps/jq/docs/templates/shared/_navbar.html.j2 +40 -0
  41. package/deps/jq/docs/validate_manual_schema.py +19 -0
  42. package/deps/jq/jq.1.prebuilt +1102 -294
  43. package/deps/jq/jq.spec +2 -3
  44. package/deps/jq/libjq.pc.in +11 -0
  45. package/deps/jq/m4/ax_pthread.m4 +522 -0
  46. package/deps/jq/modules/oniguruma/.travis.yml +17 -0
  47. package/deps/jq/modules/oniguruma/CMakeLists.txt +206 -41
  48. package/deps/jq/modules/oniguruma/COPYING +23 -25
  49. package/deps/jq/modules/oniguruma/HISTORY +368 -23
  50. package/deps/jq/modules/oniguruma/Makefile.am +61 -7
  51. package/deps/jq/modules/oniguruma/README +34 -20
  52. package/deps/jq/modules/oniguruma/README.md +106 -33
  53. package/deps/jq/modules/oniguruma/README_japanese +183 -0
  54. package/deps/jq/modules/oniguruma/autogen.sh +9 -0
  55. package/deps/jq/modules/oniguruma/cmake/Config.cmake.in +4 -0
  56. package/deps/jq/modules/oniguruma/configure.ac +66 -55
  57. package/deps/jq/modules/oniguruma/doc/API +485 -42
  58. package/deps/jq/modules/oniguruma/doc/API.ja +732 -293
  59. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API +397 -0
  60. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API.ja +393 -0
  61. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN +95 -0
  62. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN.ja +93 -0
  63. package/deps/jq/modules/oniguruma/doc/FAQ +3 -3
  64. package/deps/jq/modules/oniguruma/doc/FAQ.ja +8 -8
  65. package/deps/jq/modules/oniguruma/doc/RE +223 -63
  66. package/deps/jq/modules/oniguruma/doc/RE.ja +420 -265
  67. package/deps/jq/modules/oniguruma/doc/SYNTAX.md +1091 -0
  68. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +840 -697
  69. package/deps/jq/modules/oniguruma/harnesses/ascii_compatible.dict +113 -0
  70. package/deps/jq/modules/oniguruma/harnesses/base.c +749 -0
  71. package/deps/jq/modules/oniguruma/harnesses/deluxe.c +206 -0
  72. package/deps/jq/modules/oniguruma/harnesses/dict_conv.py +72 -0
  73. package/deps/jq/modules/oniguruma/harnesses/fuzzer.options +2 -0
  74. package/deps/jq/modules/oniguruma/harnesses/libfuzzer-onig.cpp +45 -0
  75. package/deps/jq/modules/oniguruma/harnesses/regset.c +392 -0
  76. package/deps/jq/modules/oniguruma/index.html +16 -5
  77. package/deps/jq/modules/oniguruma/index_ja.html +16 -5
  78. package/deps/jq/modules/oniguruma/make_win.bat +5 -0
  79. package/deps/jq/modules/oniguruma/make_win32.bat +5 -3
  80. package/deps/jq/modules/oniguruma/make_win64.bat +5 -3
  81. package/deps/jq/modules/oniguruma/onig-config.cmake.in +80 -0
  82. package/deps/jq/modules/oniguruma/onig-config.in +1 -1
  83. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +1 -1
  84. package/deps/jq/modules/oniguruma/oniguruma.pc.in +0 -1
  85. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +9 -2
  86. package/deps/jq/modules/oniguruma/sample/Makefile.am +24 -5
  87. package/deps/jq/modules/oniguruma/sample/bug_fix.c +13 -51
  88. package/deps/jq/modules/oniguruma/sample/callback_each_match.c +168 -0
  89. package/deps/jq/modules/oniguruma/sample/callout.c +268 -0
  90. package/deps/jq/modules/oniguruma/sample/count.c +125 -0
  91. package/deps/jq/modules/oniguruma/sample/crnl.c +6 -4
  92. package/deps/jq/modules/oniguruma/sample/echo.c +136 -0
  93. package/deps/jq/modules/oniguruma/sample/encode.c +53 -146
  94. package/deps/jq/modules/oniguruma/sample/listcap.c +18 -10
  95. package/deps/jq/modules/oniguruma/sample/names.c +10 -6
  96. package/deps/jq/modules/oniguruma/sample/posix.c +13 -2
  97. package/deps/jq/modules/oniguruma/sample/regset.c +95 -0
  98. package/deps/jq/modules/oniguruma/sample/scan.c +20 -6
  99. package/deps/jq/modules/oniguruma/sample/simple.c +8 -4
  100. package/deps/jq/modules/oniguruma/sample/sql.c +13 -8
  101. package/deps/jq/modules/oniguruma/sample/syntax.c +11 -10
  102. package/deps/jq/modules/oniguruma/sample/user_property.c +12 -7
  103. package/deps/jq/modules/oniguruma/src/Makefile.am +41 -15
  104. package/deps/jq/modules/oniguruma/src/Makefile.windows +196 -183
  105. package/deps/jq/modules/oniguruma/src/ascii.c +64 -7
  106. package/deps/jq/modules/oniguruma/src/big5.c +25 -15
  107. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +7 -22
  108. package/deps/jq/modules/oniguruma/src/config.h.win32 +56 -84
  109. package/deps/jq/modules/oniguruma/src/config.h.win64 +56 -84
  110. package/deps/jq/modules/oniguruma/src/config.h.windows.in +62 -0
  111. package/deps/jq/modules/oniguruma/src/cp1251.c +14 -8
  112. package/deps/jq/modules/oniguruma/src/euc_jp.c +28 -30
  113. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +25 -32
  114. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +1 -2
  115. package/deps/jq/modules/oniguruma/src/euc_kr.c +27 -15
  116. package/deps/jq/modules/oniguruma/src/euc_tw.c +40 -17
  117. package/deps/jq/modules/oniguruma/src/gb18030.c +177 -119
  118. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +12 -8
  119. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +8 -6
  120. package/deps/jq/modules/oniguruma/src/iso8859_1.c +92 -91
  121. package/deps/jq/modules/oniguruma/src/iso8859_10.c +13 -29
  122. package/deps/jq/modules/oniguruma/src/iso8859_11.c +4 -2
  123. package/deps/jq/modules/oniguruma/src/iso8859_13.c +13 -33
  124. package/deps/jq/modules/oniguruma/src/iso8859_14.c +13 -30
  125. package/deps/jq/modules/oniguruma/src/iso8859_15.c +13 -34
  126. package/deps/jq/modules/oniguruma/src/iso8859_16.c +13 -29
  127. package/deps/jq/modules/oniguruma/src/iso8859_2.c +13 -29
  128. package/deps/jq/modules/oniguruma/src/iso8859_3.c +13 -33
  129. package/deps/jq/modules/oniguruma/src/iso8859_4.c +13 -32
  130. package/deps/jq/modules/oniguruma/src/iso8859_5.c +16 -23
  131. package/deps/jq/modules/oniguruma/src/iso8859_6.c +4 -2
  132. package/deps/jq/modules/oniguruma/src/iso8859_7.c +14 -29
  133. package/deps/jq/modules/oniguruma/src/iso8859_8.c +4 -2
  134. package/deps/jq/modules/oniguruma/src/iso8859_9.c +13 -33
  135. package/deps/jq/modules/oniguruma/src/koi8.c +14 -27
  136. package/deps/jq/modules/oniguruma/src/koi8_r.c +12 -19
  137. package/deps/jq/modules/oniguruma/src/make_property.sh +21 -0
  138. package/deps/jq/modules/oniguruma/src/make_unicode_egcb.sh +7 -0
  139. package/deps/jq/modules/oniguruma/src/make_unicode_egcb_data.py +267 -0
  140. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +25 -11
  141. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +206 -26
  142. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +19 -10
  143. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +474 -375
  144. package/deps/jq/modules/oniguruma/src/make_unicode_wb.sh +7 -0
  145. package/deps/jq/modules/oniguruma/src/make_unicode_wb_data.py +267 -0
  146. package/deps/jq/modules/oniguruma/src/mktable.c +28 -24
  147. package/deps/jq/modules/oniguruma/src/onig_init.c +2 -2
  148. package/deps/jq/modules/oniguruma/src/oniggnu.h +7 -5
  149. package/deps/jq/modules/oniguruma/src/onigposix.h +40 -16
  150. package/deps/jq/modules/oniguruma/src/oniguruma.h +357 -107
  151. package/deps/jq/modules/oniguruma/src/regcomp.c +6214 -3933
  152. package/deps/jq/modules/oniguruma/src/regenc.c +197 -120
  153. package/deps/jq/modules/oniguruma/src/regenc.h +106 -63
  154. package/deps/jq/modules/oniguruma/src/regerror.c +112 -91
  155. package/deps/jq/modules/oniguruma/src/regexec.c +4876 -2010
  156. package/deps/jq/modules/oniguruma/src/regext.c +8 -8
  157. package/deps/jq/modules/oniguruma/src/reggnu.c +13 -17
  158. package/deps/jq/modules/oniguruma/src/regint.h +757 -491
  159. package/deps/jq/modules/oniguruma/src/regparse.c +7204 -3240
  160. package/deps/jq/modules/oniguruma/src/regparse.h +361 -218
  161. package/deps/jq/modules/oniguruma/src/regposerr.c +49 -9
  162. package/deps/jq/modules/oniguruma/src/regposix.c +106 -24
  163. package/deps/jq/modules/oniguruma/src/regsyntax.c +66 -13
  164. package/deps/jq/modules/oniguruma/src/regtrav.c +1 -1
  165. package/deps/jq/modules/oniguruma/src/regversion.c +6 -4
  166. package/deps/jq/modules/oniguruma/src/sjis.c +23 -52
  167. package/deps/jq/modules/oniguruma/src/sjis_prop.c +25 -32
  168. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +1 -2
  169. package/deps/jq/modules/oniguruma/src/st.c +248 -249
  170. package/deps/jq/modules/oniguruma/src/st.h +4 -5
  171. package/deps/jq/modules/oniguruma/src/unicode.c +869 -294
  172. package/deps/jq/modules/oniguruma/src/unicode_egcb_data.c +1419 -0
  173. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +1829 -1300
  174. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +32 -9
  175. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +32 -9
  176. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1210 -984
  177. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +22480 -15198
  178. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +1463 -591
  179. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +1958 -1418
  180. package/deps/jq/modules/oniguruma/src/unicode_wb_data.c +1106 -0
  181. package/deps/jq/modules/oniguruma/src/utf16_be.c +90 -49
  182. package/deps/jq/modules/oniguruma/src/utf16_le.c +80 -49
  183. package/deps/jq/modules/oniguruma/src/utf32_be.c +14 -42
  184. package/deps/jq/modules/oniguruma/src/utf32_le.c +13 -40
  185. package/deps/jq/modules/oniguruma/src/utf8.c +33 -78
  186. package/deps/jq/modules/oniguruma/test/CMakeLists.txt +55 -0
  187. package/deps/jq/modules/oniguruma/test/Makefile.am +65 -10
  188. package/deps/jq/modules/oniguruma/test/test.sh +17 -0
  189. package/deps/jq/modules/oniguruma/test/test_back.c +1450 -0
  190. package/deps/jq/modules/oniguruma/test/test_options.c +228 -0
  191. package/deps/jq/modules/oniguruma/test/test_regset.c +466 -0
  192. package/deps/jq/modules/oniguruma/test/test_syntax.c +365 -0
  193. package/deps/jq/modules/oniguruma/test/test_utf8.c +1761 -0
  194. package/deps/jq/modules/oniguruma/test/testc.c +128 -88
  195. package/deps/jq/modules/oniguruma/test/testp.c +613 -0
  196. package/deps/jq/modules/oniguruma/test/testu.c +75 -28
  197. package/deps/jq/modules/oniguruma/tis-ci/stub.c +3 -0
  198. package/deps/jq/modules/oniguruma/tis-ci/test_back.config +26 -0
  199. package/deps/jq/modules/oniguruma/tis-ci/test_regset.config +20 -0
  200. package/deps/jq/modules/oniguruma/tis-ci/test_syntax.config +26 -0
  201. package/deps/jq/modules/oniguruma/tis-ci/test_utf8.config +25 -0
  202. package/deps/jq/modules/oniguruma/tis-ci/testc.config +26 -0
  203. package/deps/jq/modules/oniguruma/tis-ci/testu.config +24 -0
  204. package/deps/jq/modules/oniguruma/tis.config +1336 -0
  205. package/deps/jq/modules/oniguruma/windows/CMakeLists.txt +8 -0
  206. package/deps/jq/modules/oniguruma/windows/testc.c +865 -869
  207. package/deps/jq/scripts/update-website +6 -5
  208. package/deps/jq/scripts/version +10 -7
  209. package/deps/jq/sig/jq-release-new.key +29 -0
  210. package/deps/jq/sig/v1.4/sha256sum.txt +1 -0
  211. package/deps/jq/sig/v1.5/sha256sum.txt +2 -0
  212. package/deps/jq/sig/v1.5rc1/sha256sum.txt +1 -0
  213. package/deps/jq/sig/v1.5rc2/sha256sum.txt +2 -0
  214. package/deps/jq/sig/v1.6/sha256sum.txt +2 -0
  215. package/deps/jq/sig/v1.7/jq-1.7.tar.gz.asc +16 -0
  216. package/deps/jq/sig/v1.7/jq-1.7.zip.asc +16 -0
  217. package/deps/jq/sig/v1.7/jq-linux-amd64.asc +16 -0
  218. package/deps/jq/sig/v1.7/jq-linux-arm64.asc +16 -0
  219. package/deps/jq/sig/v1.7/jq-linux-armel.asc +16 -0
  220. package/deps/jq/sig/v1.7/jq-linux-armhf.asc +16 -0
  221. package/deps/jq/sig/v1.7/jq-linux-i386.asc +16 -0
  222. package/deps/jq/sig/v1.7/jq-linux-mips.asc +16 -0
  223. package/deps/jq/sig/v1.7/jq-linux-mips64.asc +16 -0
  224. package/deps/jq/sig/v1.7/jq-linux-mips64el.asc +16 -0
  225. package/deps/jq/sig/v1.7/jq-linux-mips64r6.asc +16 -0
  226. package/deps/jq/sig/v1.7/jq-linux-mips64r6el.asc +16 -0
  227. package/deps/jq/sig/v1.7/jq-linux-mipsel.asc +16 -0
  228. package/deps/jq/sig/v1.7/jq-linux-mipsr6.asc +16 -0
  229. package/deps/jq/sig/v1.7/jq-linux-mipsr6el.asc +16 -0
  230. package/deps/jq/sig/v1.7/jq-linux-powerpc.asc +16 -0
  231. package/deps/jq/sig/v1.7/jq-linux-ppc64el.asc +16 -0
  232. package/deps/jq/sig/v1.7/jq-linux-riscv64.asc +16 -0
  233. package/deps/jq/sig/v1.7/jq-linux-s390x.asc +16 -0
  234. package/deps/jq/sig/v1.7/jq-macos-amd64.asc +16 -0
  235. package/deps/jq/sig/v1.7/jq-macos-arm64.asc +16 -0
  236. package/deps/jq/sig/v1.7/jq-windows-amd64.exe.asc +16 -0
  237. package/deps/jq/sig/v1.7/jq-windows-i386.exe.asc +16 -0
  238. package/deps/jq/sig/v1.7/sha256sum.txt +23 -0
  239. package/deps/jq/sig/v1.7.1/jq-1.7.1.tar.gz.asc +16 -0
  240. package/deps/jq/sig/v1.7.1/jq-1.7.1.zip.asc +16 -0
  241. package/deps/jq/sig/v1.7.1/jq-linux-amd64.asc +16 -0
  242. package/deps/jq/sig/v1.7.1/jq-linux-arm64.asc +16 -0
  243. package/deps/jq/sig/v1.7.1/jq-linux-armel.asc +16 -0
  244. package/deps/jq/sig/v1.7.1/jq-linux-armhf.asc +16 -0
  245. package/deps/jq/sig/v1.7.1/jq-linux-i386.asc +16 -0
  246. package/deps/jq/sig/v1.7.1/jq-linux-mips.asc +16 -0
  247. package/deps/jq/sig/v1.7.1/jq-linux-mips64.asc +16 -0
  248. package/deps/jq/sig/v1.7.1/jq-linux-mips64el.asc +16 -0
  249. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6.asc +16 -0
  250. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6el.asc +16 -0
  251. package/deps/jq/sig/v1.7.1/jq-linux-mipsel.asc +16 -0
  252. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6.asc +16 -0
  253. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6el.asc +16 -0
  254. package/deps/jq/sig/v1.7.1/jq-linux-powerpc.asc +16 -0
  255. package/deps/jq/sig/v1.7.1/jq-linux-ppc64el.asc +16 -0
  256. package/deps/jq/sig/v1.7.1/jq-linux-riscv64.asc +16 -0
  257. package/deps/jq/sig/v1.7.1/jq-linux-s390x.asc +16 -0
  258. package/deps/jq/sig/v1.7.1/jq-linux64.asc +16 -0
  259. package/deps/jq/sig/v1.7.1/jq-macos-amd64.asc +16 -0
  260. package/deps/jq/sig/v1.7.1/jq-macos-arm64.asc +16 -0
  261. package/deps/jq/sig/v1.7.1/jq-osx-amd64.asc +16 -0
  262. package/deps/jq/sig/v1.7.1/jq-win64.exe.asc +16 -0
  263. package/deps/jq/sig/v1.7.1/jq-windows-amd64.exe.asc +16 -0
  264. package/deps/jq/sig/v1.7.1/jq-windows-i386.exe.asc +16 -0
  265. package/deps/jq/sig/v1.7.1/sha256sum.txt +26 -0
  266. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.tar.gz.asc +16 -0
  267. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.zip.asc +16 -0
  268. package/deps/jq/sig/v1.7rc1/jq-linux-amd64.asc +16 -0
  269. package/deps/jq/sig/v1.7rc1/jq-linux-arm64.asc +16 -0
  270. package/deps/jq/sig/v1.7rc1/jq-linux-armel.asc +16 -0
  271. package/deps/jq/sig/v1.7rc1/jq-linux-armhf.asc +16 -0
  272. package/deps/jq/sig/v1.7rc1/jq-linux-i386.asc +16 -0
  273. package/deps/jq/sig/v1.7rc1/jq-linux-mips.asc +16 -0
  274. package/deps/jq/sig/v1.7rc1/jq-linux-mips64.asc +16 -0
  275. package/deps/jq/sig/v1.7rc1/jq-linux-mips64el.asc +16 -0
  276. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6.asc +16 -0
  277. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6el.asc +16 -0
  278. package/deps/jq/sig/v1.7rc1/jq-linux-mipsel.asc +16 -0
  279. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6.asc +16 -0
  280. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6el.asc +16 -0
  281. package/deps/jq/sig/v1.7rc1/jq-linux-powerpc.asc +16 -0
  282. package/deps/jq/sig/v1.7rc1/jq-linux-ppc64el.asc +16 -0
  283. package/deps/jq/sig/v1.7rc1/jq-linux-riscv64.asc +16 -0
  284. package/deps/jq/sig/v1.7rc1/jq-linux-s390x.asc +16 -0
  285. package/deps/jq/sig/v1.7rc1/jq-macos-amd64.asc +16 -0
  286. package/deps/jq/sig/v1.7rc1/jq-macos-arm64.asc +16 -0
  287. package/deps/jq/sig/v1.7rc1/jq-windows-amd64.exe.asc +16 -0
  288. package/deps/jq/sig/v1.7rc1/jq-windows-i386.exe.asc +16 -0
  289. package/deps/jq/sig/v1.7rc1/sha256sum.txt +23 -0
  290. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.tar.gz.asc +16 -0
  291. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.zip.asc +16 -0
  292. package/deps/jq/sig/v1.7rc2/jq-linux-amd64.asc +16 -0
  293. package/deps/jq/sig/v1.7rc2/jq-linux-arm64.asc +16 -0
  294. package/deps/jq/sig/v1.7rc2/jq-linux-armel.asc +16 -0
  295. package/deps/jq/sig/v1.7rc2/jq-linux-armhf.asc +16 -0
  296. package/deps/jq/sig/v1.7rc2/jq-linux-i386.asc +16 -0
  297. package/deps/jq/sig/v1.7rc2/jq-linux-mips.asc +16 -0
  298. package/deps/jq/sig/v1.7rc2/jq-linux-mips64.asc +16 -0
  299. package/deps/jq/sig/v1.7rc2/jq-linux-mips64el.asc +16 -0
  300. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6.asc +16 -0
  301. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6el.asc +16 -0
  302. package/deps/jq/sig/v1.7rc2/jq-linux-mipsel.asc +16 -0
  303. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6.asc +16 -0
  304. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6el.asc +16 -0
  305. package/deps/jq/sig/v1.7rc2/jq-linux-powerpc.asc +16 -0
  306. package/deps/jq/sig/v1.7rc2/jq-linux-ppc64el.asc +16 -0
  307. package/deps/jq/sig/v1.7rc2/jq-linux-riscv64.asc +16 -0
  308. package/deps/jq/sig/v1.7rc2/jq-linux-s390x.asc +16 -0
  309. package/deps/jq/sig/v1.7rc2/jq-macos-amd64.asc +16 -0
  310. package/deps/jq/sig/v1.7rc2/jq-macos-arm64.asc +16 -0
  311. package/deps/jq/sig/v1.7rc2/jq-windows-amd64.exe.asc +16 -0
  312. package/deps/jq/sig/v1.7rc2/jq-windows-i386.exe.asc +16 -0
  313. package/deps/jq/sig/v1.7rc2/sha256sum.txt +23 -0
  314. package/deps/jq/src/builtin.c +537 -343
  315. package/deps/jq/src/builtin.h +18 -0
  316. package/deps/jq/src/builtin.jq +116 -143
  317. package/deps/jq/src/bytecode.h +8 -4
  318. package/deps/jq/src/compile.c +157 -143
  319. package/deps/jq/src/compile.h +3 -4
  320. package/deps/jq/src/decNumber/ICU-license.html +45 -0
  321. package/deps/jq/src/decNumber/decBasic.c +3908 -0
  322. package/deps/jq/src/decNumber/decCommon.c +1835 -0
  323. package/deps/jq/src/decNumber/decContext.c +437 -0
  324. package/deps/jq/src/decNumber/decContext.h +254 -0
  325. package/deps/jq/src/decNumber/decDPD.h +1185 -0
  326. package/deps/jq/src/decNumber/decDouble.c +140 -0
  327. package/deps/jq/src/decNumber/decDouble.h +155 -0
  328. package/deps/jq/src/decNumber/decNumber.c +8143 -0
  329. package/deps/jq/src/decNumber/decNumber.h +182 -0
  330. package/deps/jq/src/decNumber/decNumberLocal.h +757 -0
  331. package/deps/jq/src/decNumber/decPacked.c +220 -0
  332. package/deps/jq/src/decNumber/decPacked.h +52 -0
  333. package/deps/jq/src/decNumber/decQuad.c +135 -0
  334. package/deps/jq/src/decNumber/decQuad.h +177 -0
  335. package/deps/jq/src/decNumber/decSingle.c +71 -0
  336. package/deps/jq/src/decNumber/decSingle.h +86 -0
  337. package/deps/jq/src/decNumber/decimal128.c +553 -0
  338. package/deps/jq/src/decNumber/decimal128.h +81 -0
  339. package/deps/jq/src/decNumber/decimal32.c +476 -0
  340. package/deps/jq/src/decNumber/decimal32.h +81 -0
  341. package/deps/jq/src/decNumber/decimal64.c +839 -0
  342. package/deps/jq/src/decNumber/decimal64.h +83 -0
  343. package/deps/jq/src/decNumber/decnumber.pdf +0 -0
  344. package/deps/jq/src/decNumber/example1.c +38 -0
  345. package/deps/jq/src/decNumber/example2.c +52 -0
  346. package/deps/jq/src/decNumber/example3.c +64 -0
  347. package/deps/jq/src/decNumber/example4.c +61 -0
  348. package/deps/jq/src/decNumber/example5.c +36 -0
  349. package/deps/jq/src/decNumber/example6.c +61 -0
  350. package/deps/jq/src/decNumber/example7.c +35 -0
  351. package/deps/jq/src/decNumber/example8.c +39 -0
  352. package/deps/jq/src/decNumber/readme.txt +81 -0
  353. package/deps/jq/src/exec_stack.h +5 -3
  354. package/deps/jq/src/execute.c +126 -44
  355. package/deps/jq/src/inject_errors.c +0 -2
  356. package/deps/jq/src/jq.h +10 -1
  357. package/deps/jq/src/jq_test.c +222 -11
  358. package/deps/jq/src/jv.c +807 -176
  359. package/deps/jq/src/jv.h +22 -1
  360. package/deps/jq/src/jv_alloc.c +33 -26
  361. package/deps/jq/src/jv_alloc.h +0 -11
  362. package/deps/jq/src/jv_aux.c +153 -67
  363. package/deps/jq/src/jv_dtoa.c +12 -2
  364. package/deps/jq/src/jv_dtoa_tsd.c +51 -0
  365. package/deps/jq/src/jv_dtoa_tsd.h +4 -0
  366. package/deps/jq/src/jv_parse.c +70 -15
  367. package/deps/jq/src/jv_print.c +56 -60
  368. package/deps/jq/src/jv_private.h +7 -0
  369. package/deps/jq/src/jv_thread.h +76 -0
  370. package/deps/jq/src/jv_unicode.c +18 -0
  371. package/deps/jq/src/jv_unicode.h +2 -0
  372. package/deps/jq/src/lexer.c +782 -543
  373. package/deps/jq/src/lexer.h +438 -64
  374. package/deps/jq/src/lexer.l +10 -3
  375. package/deps/jq/src/libm.h +16 -6
  376. package/deps/jq/src/linker.c +97 -40
  377. package/deps/jq/src/locfile.c +2 -1
  378. package/deps/jq/src/main.c +384 -336
  379. package/deps/jq/src/opcode_list.h +5 -2
  380. package/deps/jq/src/parser.c +2260 -1898
  381. package/deps/jq/src/parser.h +115 -98
  382. package/deps/jq/src/parser.y +124 -89
  383. package/deps/jq/src/util.c +854 -55
  384. package/deps/jq/src/util.h +6 -4
  385. package/deps/jq/tests/jq.test +762 -26
  386. package/deps/jq/tests/jq_fuzz_compile.c +27 -0
  387. package/deps/jq/tests/jq_fuzz_execute.cpp +42 -0
  388. package/deps/jq/tests/jq_fuzz_fixed.cpp +297 -0
  389. package/deps/jq/tests/jq_fuzz_load_file.c +28 -0
  390. package/deps/jq/tests/jq_fuzz_parse.c +21 -0
  391. package/deps/jq/tests/jq_fuzz_parse_extended.c +36 -0
  392. package/deps/jq/tests/jq_fuzz_parse_stream.c +21 -0
  393. package/deps/jq/tests/local.supp +14 -0
  394. package/deps/jq/tests/man.test +979 -0
  395. package/deps/jq/tests/manonig.test +76 -0
  396. package/deps/jq/tests/manonigtest +5 -0
  397. package/deps/jq/tests/mantest +1 -2
  398. package/deps/jq/tests/modules/home2/.jq/g.jq +1 -0
  399. package/deps/jq/tests/modules/shadow1.jq +2 -0
  400. package/deps/jq/tests/modules/shadow2.jq +1 -0
  401. package/deps/jq/tests/modules/test_bind_order0.jq +1 -0
  402. package/deps/jq/tests/modules/test_bind_order1.jq +1 -1
  403. package/deps/jq/tests/modules/test_bind_order2.jq +0 -1
  404. package/deps/jq/tests/no-main-program.jq +1 -0
  405. package/deps/jq/tests/onig.test +77 -2
  406. package/deps/jq/tests/setup +7 -2
  407. package/deps/jq/tests/shtest +478 -59
  408. package/deps/jq/tests/uri.test +38 -0
  409. package/deps/jq/tests/uritest +5 -0
  410. package/deps/jq/tests/yes-main-program.jq +2 -0
  411. package/lib/index.js +3 -0
  412. package/lib/jq.js +15 -1
  413. package/lib/templateAsync.js +137 -0
  414. package/package.json +7 -7
  415. package/src/binding.cc +623 -146
  416. package/src/binding.h +3 -4
  417. package/test/santiy-async.test.js +171 -0
  418. package/test/santiy.test.js +2 -2
  419. package/test/template-async.test.js +182 -0
  420. package/test/template.test.js +3 -3
  421. package/deps/jq/.travis.yml +0 -202
  422. package/deps/jq/NEWS +0 -89
  423. package/deps/jq/appveyor.yml +0 -53
  424. package/deps/jq/docs/Gemfile +0 -7
  425. package/deps/jq/docs/Gemfile.lock +0 -63
  426. package/deps/jq/docs/Rakefile +0 -24
  427. package/deps/jq/docs/Rakefile.manual +0 -49
  428. package/deps/jq/docs/Rakefile.website +0 -76
  429. package/deps/jq/docs/content/1.tutorial/default.yml +0 -327
  430. package/deps/jq/docs/content/2.download/default.yml +0 -193
  431. package/deps/jq/docs/content/index/index.yml +0 -73
  432. package/deps/jq/docs/public/css/base.scss +0 -181
  433. package/deps/jq/docs/public/jq.png +0 -0
  434. package/deps/jq/docs/site.yml +0 -9
  435. package/deps/jq/docs/templates/default.liquid +0 -34
  436. package/deps/jq/docs/templates/index.liquid +0 -73
  437. package/deps/jq/docs/templates/manual.liquid +0 -99
  438. package/deps/jq/docs/templates/shared/_footer.liquid +0 -10
  439. package/deps/jq/docs/templates/shared/_head.liquid +0 -17
  440. package/deps/jq/docs/templates/shared/_navbar.liquid +0 -27
  441. package/deps/jq/modules/oniguruma/README.ja +0 -195
  442. package/deps/jq/modules/oniguruma/cmake/dist.cmake +0 -321
  443. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +0 -31
  444. package/deps/jq/modules/oniguruma/dist.info +0 -10
  445. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +0 -2250
  446. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +0 -203
  447. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +0 -113
  448. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +0 -1225
  449. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +0 -24742
  450. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +0 -4846
  451. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +0 -2571
  452. /package/deps/jq/sig/{jq-release.key → jq-release-old.key} +0 -0
  453. /package/deps/jq/tests/modules/{.jq → home1/.jq} +0 -0
@@ -4,7 +4,7 @@
4
4
  regint.h - Oniguruma (regular expression library)
5
5
  **********************************************************************/
6
6
  /*-
7
- * Copyright (c) 2002-2013 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
7
+ * Copyright (c) 2002-2023 K.Kosako
8
8
  * All rights reserved.
9
9
  *
10
10
  * Redistribution and use in source and binary forms, with or without
@@ -30,146 +30,150 @@
30
30
  */
31
31
 
32
32
  /* for debug */
33
- /* #define ONIG_DEBUG_PARSE_TREE */
33
+ /* #define ONIG_DEBUG_PARSE */
34
34
  /* #define ONIG_DEBUG_COMPILE */
35
35
  /* #define ONIG_DEBUG_SEARCH */
36
36
  /* #define ONIG_DEBUG_MATCH */
37
+ /* #define ONIG_DEBUG_MATCH_COUNTER */
38
+ /* #define ONIG_DEBUG_CALL */
37
39
  /* #define ONIG_DONT_OPTIMIZE */
38
40
 
39
41
  /* for byte-code statistical data. */
40
42
  /* #define ONIG_DEBUG_STATISTICS */
41
43
 
42
- #if defined(ONIG_DEBUG_PARSE_TREE) || defined(ONIG_DEBUG_MATCH) || \
44
+ #if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \
43
45
  defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) || \
46
+ defined(ONIG_DEBUG_MATCH_COUNTER) || defined(ONIG_DEBUG_CALL) || \
44
47
  defined(ONIG_DEBUG_STATISTICS)
45
48
  #ifndef ONIG_DEBUG
46
49
  #define ONIG_DEBUG
50
+ #define DBGFP stderr
47
51
  #endif
48
52
  #endif
49
53
 
50
- #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
51
- (defined(__ppc__) && defined(__APPLE__)) || \
52
- defined(__x86_64) || defined(__x86_64__) || \
53
- defined(__mc68020__)
54
- #define PLATFORM_UNALIGNED_WORD_ACCESS
54
+ #ifndef ONIG_DISABLE_DIRECT_THREADING
55
+ #ifdef __GNUC__
56
+ #define USE_GOTO_LABELS_AS_VALUES
57
+ #endif
55
58
  #endif
56
59
 
57
60
  /* config */
58
61
  /* spec. config */
59
- #define USE_NAMED_GROUP
60
- #define USE_SUBEXP_CALL
62
+ #define USE_REGSET
63
+ #define USE_CALL
64
+ #define USE_CALLOUT
61
65
  #define USE_BACKREF_WITH_LEVEL /* \k<name+n>, \k<name-n> */
62
- #define USE_MONOMANIAC_CHECK_CAPTURES_IN_ENDLESS_REPEAT /* /(?:()|())*\2/ */
66
+ #define USE_WHOLE_OPTIONS
67
+ #define USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT /* /(?:()|())*\2/ */
63
68
  #define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */
64
69
  #define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR
65
- /* !!! moved to regenc.h. */ /* #define USE_CRNL_AS_LINE_TERMINATOR */
70
+ #define USE_RETRY_LIMIT
71
+ #ifdef USE_GOTO_LABELS_AS_VALUES
72
+ #define USE_THREADED_CODE
73
+ #define USE_DIRECT_THREADED_CODE
74
+ #endif
66
75
 
67
76
  /* internal config */
77
+ #define USE_CHECK_VALIDITY_OF_STRING_IN_TREE
68
78
  #define USE_OP_PUSH_OR_JUMP_EXACT
69
- #define USE_QTFR_PEEK_NEXT
79
+ #define USE_QUANT_PEEK_NEXT
70
80
  #define USE_ST_LIBRARY
81
+ #define USE_TIMEOFDAY
82
+ #define USE_STRICT_POINTER_ADDRESS
83
+ #define USE_STRICT_POINTER_COMPARISON
71
84
 
72
- #define INIT_MATCH_STACK_SIZE 160
73
- #define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */
74
- #define DEFAULT_PARSE_DEPTH_LIMIT 4096
75
-
76
- #if defined(__GNUC__)
77
- # define ARG_UNUSED __attribute__ ((unused))
78
- #else
79
- # define ARG_UNUSED
80
- #endif
81
-
82
- /* */
83
- /* escape other system UChar definition */
84
- #include "config.h"
85
- #ifdef ONIG_ESCAPE_UCHAR_COLLISION
86
- #undef ONIG_ESCAPE_UCHAR_COLLISION
87
- #endif
88
-
89
- #define USE_WORD_BEGIN_END /* "\<", "\>" */
85
+ #define USE_WORD_BEGIN_END /* "\<", "\>" */
90
86
  #define USE_CAPTURE_HISTORY
91
87
  #define USE_VARIABLE_META_CHARS
92
- #define USE_POSIX_API_REGION_OPTION
93
88
  #define USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE
94
- /* #define USE_COMBINATION_EXPLOSION_CHECK */ /* (X*)* */
95
-
96
- #define xmalloc malloc
97
- #define xrealloc realloc
98
- #define xcalloc calloc
99
- #define xfree free
100
-
101
- #define CHECK_INTERRUPT_IN_MATCH_AT
102
-
103
- #define st_init_table onig_st_init_table
104
- #define st_init_table_with_size onig_st_init_table_with_size
105
- #define st_init_numtable onig_st_init_numtable
106
- #define st_init_numtable_with_size onig_st_init_numtable_with_size
107
- #define st_init_strtable onig_st_init_strtable
108
- #define st_init_strtable_with_size onig_st_init_strtable_with_size
109
- #define st_delete onig_st_delete
110
- #define st_delete_safe onig_st_delete_safe
111
- #define st_insert onig_st_insert
112
- #define st_lookup onig_st_lookup
113
- #define st_foreach onig_st_foreach
114
- #define st_add_direct onig_st_add_direct
115
- #define st_free_table onig_st_free_table
116
- #define st_cleanup_safe onig_st_cleanup_safe
117
- #define st_copy onig_st_copy
118
- #define st_nothing_key_clone onig_st_nothing_key_clone
119
- #define st_nothing_key_free onig_st_nothing_key_free
120
- /* */
121
- #define onig_st_is_member st_is_member
89
+ /* #define USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR */
122
90
 
123
- #define STATE_CHECK_STRING_THRESHOLD_LEN 7
124
- #define STATE_CHECK_BUFF_MAX_SIZE 0x4000
91
+ /* enabled by configure --enable-posix-api=yes */
92
+ /* #define USE_POSIX_API */
125
93
 
126
- #define xmemset memset
127
- #define xmemcpy memcpy
128
- #define xmemmove memmove
94
+ #define DEFAULT_PARSE_DEPTH_LIMIT 4096
95
+ #define INIT_MATCH_STACK_SIZE 160
96
+ #define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */
97
+ #define DEFAULT_RETRY_LIMIT_IN_MATCH 10000000
98
+ #define DEFAULT_RETRY_LIMIT_IN_SEARCH 0 /* unlimited */
99
+ #define DEFAULT_SUBEXP_CALL_LIMIT_IN_SEARCH 0 /* unlimited */
100
+ #define DEFAULT_SUBEXP_CALL_MAX_NEST_LEVEL 20
129
101
 
130
- #if defined(_WIN32) && !defined(__GNUC__)
131
- #define xalloca _alloca
132
- #define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args)
133
- #define xsnprintf sprintf_s
134
- #define xstrcat(dest,src,size) strcat_s(dest,size,src)
135
- #else
136
- #define xalloca alloca
137
- #define xvsnprintf vsnprintf
138
- #define xsnprintf snprintf
139
- #define xstrcat(dest,src,size) strcat(dest,src)
140
- #endif
141
102
 
103
+ #include "regenc.h"
104
+
105
+ #ifndef ONIG_NO_STANDARD_C_HEADERS
142
106
 
143
- #ifdef HAVE_STDLIB_H
107
+ #include <stddef.h>
108
+ #include <stdarg.h>
109
+ #include <limits.h>
144
110
  #include <stdlib.h>
111
+ #include <string.h>
112
+ #include <ctype.h>
113
+
114
+ #ifdef HAVE_STDINT_H
115
+ #include <stdint.h>
145
116
  #endif
146
117
 
147
118
  #if defined(HAVE_ALLOCA_H) && !defined(__GNUC__)
148
119
  #include <alloca.h>
149
120
  #endif
150
121
 
151
- #ifdef HAVE_STRING_H
152
- # include <string.h>
153
- #else
154
- # include <strings.h>
155
- #endif
156
-
157
- #include <ctype.h>
158
122
  #ifdef HAVE_SYS_TYPES_H
159
123
  #ifndef __BORLANDC__
160
124
  #include <sys/types.h>
161
125
  #endif
162
126
  #endif
163
127
 
164
- #ifdef __BORLANDC__
128
+ #ifdef HAVE_INTTYPES_H
129
+ #include <inttypes.h>
130
+ #endif
131
+
132
+ #if defined(_WIN32) || defined(__BORLANDC__)
165
133
  #include <malloc.h>
166
134
  #endif
167
135
 
168
- #ifdef ONIG_DEBUG
136
+ #if defined(ONIG_DEBUG) || defined(NEED_TO_INCLUDE_STDIO)
169
137
  # include <stdio.h>
170
138
  #endif
171
139
 
172
- #include "regenc.h"
140
+ #ifdef ONIG_DEBUG_STATISTICS
141
+ #ifdef USE_TIMEOFDAY
142
+
143
+ #ifdef HAVE_SYS_TIME_H
144
+ #include <sys/time.h>
145
+ #endif
146
+ #ifdef HAVE_UNISTD_H
147
+ #include <unistd.h>
148
+ #endif
149
+
150
+ #else /* USE_TIMEOFDAY */
151
+
152
+ #ifdef HAVE_SYS_TIMES_H
153
+ #include <sys/times.h>
154
+ #endif
155
+
156
+ #endif /* USE_TIMEOFDAY */
157
+ #endif /* ONIG_DEBUG_STATISTICS */
158
+
159
+ /* I don't think these x....'s need to be included in
160
+ ONIG_NO_STANDARD_C_HEADERS, but they are required by Issue #170
161
+ and do so since there is no problem.
162
+ */
163
+ #ifndef xmemset
164
+ #define xmemset memset
165
+ #endif
166
+
167
+ #ifndef xmemcpy
168
+ #define xmemcpy memcpy
169
+ #endif
170
+
171
+ #ifndef xmemmove
172
+ #define xmemmove memmove
173
+ #endif
174
+
175
+ #endif /* ONIG_NO_STANDARD_C_HEADERS */
176
+
173
177
 
174
178
  #ifdef MIN
175
179
  #undef MIN
@@ -177,6 +181,7 @@
177
181
  #ifdef MAX
178
182
  #undef MAX
179
183
  #endif
184
+
180
185
  #define MIN(a,b) (((a)>(b))?(b):(a))
181
186
  #define MAX(a,b) (((a)<(b))?(b):(a))
182
187
 
@@ -186,415 +191,485 @@
186
191
  #define CHECK_NULL_RETURN_MEMERR(p) if (IS_NULL(p)) return ONIGERR_MEMORY
187
192
  #define NULL_UCHARP ((UChar* )0)
188
193
 
189
- #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
194
+ #ifdef USE_STRICT_POINTER_COMPARISON
195
+ #define PTR_GE(p,q) ((p) != NULL && (p) >= (q))
196
+ #else
197
+ #define PTR_GE(p,q) (p) >= (q)
198
+ #endif
190
199
 
191
- #define PLATFORM_GET_INC(val,p,type) do{\
192
- val = *(type* )p;\
193
- (p) += sizeof(type);\
194
- } while(0)
200
+ #ifndef ONIG_INT_MAX
201
+ #define ONIG_INT_MAX INT_MAX
202
+ #endif
203
+
204
+ #define CHAR_MAP_SIZE 256
205
+ #define INFINITE_LEN ONIG_INFINITE_DISTANCE
206
+ #define STEP_BACK_MAX_CHAR_LEN 65535 /* INT_MAX is too big */
207
+ #define LOOK_BEHIND_MAX_CHAR_LEN STEP_BACK_MAX_CHAR_LEN
208
+
209
+ /* escape other system UChar definition */
210
+ #ifdef ONIG_ESCAPE_UCHAR_COLLISION
211
+ #undef ONIG_ESCAPE_UCHAR_COLLISION
212
+ #endif
213
+
214
+ #define xmalloc malloc
215
+ #define xrealloc realloc
216
+ #define xcalloc calloc
217
+ #define xfree free
218
+
219
+ #define st_init_table onig_st_init_table
220
+ #define st_init_table_with_size onig_st_init_table_with_size
221
+ #define st_init_numtable onig_st_init_numtable
222
+ #define st_init_numtable_with_size onig_st_init_numtable_with_size
223
+ #define st_init_strtable onig_st_init_strtable
224
+ #define st_init_strtable_with_size onig_st_init_strtable_with_size
225
+ #define st_delete onig_st_delete
226
+ #define st_delete_safe onig_st_delete_safe
227
+ #define st_insert onig_st_insert
228
+ #define st_lookup onig_st_lookup
229
+ #define st_foreach onig_st_foreach
230
+ #define st_add_direct onig_st_add_direct
231
+ #define st_free_table onig_st_free_table
232
+ #define st_cleanup_safe onig_st_cleanup_safe
233
+ #define st_copy onig_st_copy
234
+ #define st_nothing_key_clone onig_st_nothing_key_clone
235
+ #define st_nothing_key_free onig_st_nothing_key_free
236
+ /* */
237
+ #define onig_st_is_member st_is_member
238
+
239
+
240
+ #if defined(_WIN32) && !defined(__GNUC__)
241
+
242
+ #ifndef xalloca
243
+ #define xalloca _alloca
244
+ #endif
245
+ #ifndef xvsnprintf
246
+ #define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args)
247
+ #endif
248
+ #ifndef xsnprintf
249
+ #define xsnprintf sprintf_s
250
+ #endif
251
+ #ifndef xstrcat
252
+ #define xstrcat(dest,src,size) strcat_s(dest,size,src)
253
+ #endif
195
254
 
196
255
  #else
197
256
 
198
- #define PLATFORM_GET_INC(val,p,type) do{\
199
- xmemcpy(&val, (p), sizeof(type));\
200
- (p) += sizeof(type);\
201
- } while(0)
257
+ #ifndef xalloca
258
+ #define xalloca alloca
259
+ #endif
260
+ #ifndef xvsnprintf
261
+ #define xvsnprintf vsnprintf
262
+ #endif
263
+ #ifndef xsnprintf
264
+ #define xsnprintf snprintf
265
+ #endif
266
+ #ifndef xstrcat
267
+ #define xstrcat(dest,src,size) strcat(dest,src)
268
+ #endif
202
269
 
203
- /* sizeof(OnigCodePoint) */
204
- #define WORD_ALIGNMENT_SIZE SIZEOF_LONG
270
+ #endif /* defined(_WIN32) && !defined(__GNUC__) */
205
271
 
206
- #define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\
207
- (pad_size) = WORD_ALIGNMENT_SIZE \
208
- - ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\
209
- if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\
210
- } while (0)
211
272
 
212
- #define ALIGNMENT_RIGHT(addr) do {\
213
- (addr) += (WORD_ALIGNMENT_SIZE - 1);\
214
- (addr) -= ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\
215
- } while (0)
273
+ #ifdef _WIN32
274
+ #ifdef _MSC_VER
216
275
 
217
- #endif /* PLATFORM_UNALIGNED_WORD_ACCESS */
276
+ #if _MSC_VER < 1300
277
+ typedef int intptr_t;
278
+ typedef unsigned int uintptr_t;
279
+ #endif
280
+
281
+ #if _MSC_VER < 1600
282
+ typedef __int32 int32_t;
283
+ typedef unsigned __int32 uint32_t;
284
+ typedef __int64 int64_t;
285
+ typedef unsigned __int64 uint64_t;
286
+ #endif
287
+
288
+ #endif
289
+ #endif /* _WIN32 */
290
+
291
+ #if SIZEOF_VOIDP == SIZEOF_LONG
292
+ typedef unsigned long hash_data_type;
293
+ #elif SIZEOF_VOIDP == SIZEOF_LONG_LONG
294
+ typedef unsigned long long hash_data_type;
295
+ #endif
296
+
297
+ /* strend hash */
298
+ typedef void* hash_table_type;
299
+
300
+
301
+ #ifdef USE_CALLOUT
302
+
303
+ typedef struct {
304
+ int flag;
305
+ OnigCalloutOf of;
306
+ int in;
307
+ int name_id;
308
+ const UChar* tag_start;
309
+ const UChar* tag_end;
310
+ OnigCalloutType type;
311
+ OnigCalloutFunc start_func;
312
+ OnigCalloutFunc end_func;
313
+ union {
314
+ struct {
315
+ const UChar* start;
316
+ const UChar* end;
317
+ } content;
318
+ struct {
319
+ int num;
320
+ int passed_num;
321
+ OnigType types[ONIG_CALLOUT_MAX_ARGS_NUM];
322
+ OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM];
323
+ } arg;
324
+ } u;
325
+ } CalloutListEntry;
326
+
327
+ #endif
218
328
 
219
329
  /* stack pop level */
220
- #define STACK_POP_LEVEL_FREE 0
221
- #define STACK_POP_LEVEL_MEM_START 1
222
- #define STACK_POP_LEVEL_ALL 2
330
+ enum StackPopLevel {
331
+ STACK_POP_LEVEL_FREE = 0,
332
+ STACK_POP_LEVEL_MEM_START = 1,
333
+ STACK_POP_LEVEL_ALL = 2
334
+ };
223
335
 
224
336
  /* optimize flags */
225
- #define ONIG_OPTIMIZE_NONE 0
226
- #define ONIG_OPTIMIZE_EXACT 1 /* Slow Search */
227
- #define ONIG_OPTIMIZE_EXACT_BM 2 /* Boyer Moore Search */
228
- #define ONIG_OPTIMIZE_EXACT_BM_NOT_REV 3 /* BM (but not simple match) */
229
- #define ONIG_OPTIMIZE_EXACT_IC 4 /* Slow Search (ignore case) */
230
- #define ONIG_OPTIMIZE_MAP 5 /* char map */
337
+ enum OptimizeType {
338
+ OPTIMIZE_NONE = 0,
339
+ OPTIMIZE_STR, /* Slow Search */
340
+ OPTIMIZE_STR_FAST, /* Sunday quick search / BMH */
341
+ OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search / BMH */
342
+ OPTIMIZE_MAP /* char map */
343
+ };
231
344
 
232
345
  /* bit status */
233
- typedef unsigned int BitStatusType;
234
-
235
- #define BIT_STATUS_BITS_NUM (sizeof(BitStatusType) * 8)
236
- #define BIT_STATUS_CLEAR(stats) (stats) = 0
237
- #define BIT_STATUS_ON_ALL(stats) (stats) = ~((BitStatusType )0)
238
- #define BIT_STATUS_AT(stats,n) \
239
- ((n) < (int )BIT_STATUS_BITS_NUM ? ((stats) & (1 << n)) : ((stats) & 1))
240
-
241
- #define BIT_STATUS_ON_AT(stats,n) do {\
242
- if ((n) < (int )BIT_STATUS_BITS_NUM) \
243
- (stats) |= (1 << (n));\
346
+ typedef unsigned int MemStatusType;
347
+
348
+ #define MEM_STATUS_BITS_NUM (sizeof(MemStatusType) * 8)
349
+ #define MEM_STATUS_CLEAR(stats) (stats) = 0
350
+ #define MEM_STATUS_ON_ALL(stats) (stats) = ~((MemStatusType )0)
351
+ #define MEM_STATUS_AT(stats,n) \
352
+ ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1))
353
+ #define MEM_STATUS_AT0(stats,n) \
354
+ ((n) > 0 && (n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1))
355
+
356
+ #define MEM_STATUS_IS_ALL_ON(stats) (((stats) & 1) != 0)
357
+
358
+ #define MEM_STATUS_ON(stats,n) do {\
359
+ if ((n) < (int )MEM_STATUS_BITS_NUM) {\
360
+ if ((n) != 0)\
361
+ (stats) |= ((MemStatusType )1 << (n));\
362
+ }\
244
363
  else\
245
364
  (stats) |= 1;\
246
365
  } while (0)
247
366
 
248
- #define BIT_STATUS_ON_AT_SIMPLE(stats,n) do {\
249
- if ((n) < (int )BIT_STATUS_BITS_NUM)\
250
- (stats) |= (1 << (n));\
367
+ #define MEM_STATUS_ON_SIMPLE(stats,n) do {\
368
+ if ((n) < (int )MEM_STATUS_BITS_NUM)\
369
+ (stats) |= ((MemStatusType )1 << (n));\
370
+ } while (0)
371
+
372
+ #define MEM_STATUS_LIMIT_AT(stats,n) \
373
+ ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : 0)
374
+ #define MEM_STATUS_LIMIT_ON(stats,n) do {\
375
+ if ((n) < (int )MEM_STATUS_BITS_NUM && (n) != 0) {\
376
+ (stats) |= ((MemStatusType )1 << (n));\
377
+ }\
251
378
  } while (0)
252
379
 
253
380
 
254
- #define INT_MAX_LIMIT ((1UL << (SIZEOF_INT * 8 - 1)) - 1)
381
+ #define IS_CODE_WORD_ASCII(enc,code) \
382
+ (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code))
383
+ #define IS_CODE_DIGIT_ASCII(enc, code) \
384
+ (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_DIGIT(enc,code))
385
+ #define IS_CODE_XDIGIT_ASCII(enc, code) \
386
+ (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_XDIGIT(enc,code))
255
387
 
256
388
  #define DIGITVAL(code) ((code) - '0')
257
389
  #define ODIGITVAL(code) DIGITVAL(code)
258
390
  #define XDIGITVAL(enc,code) \
259
- (ONIGENC_IS_CODE_DIGIT(enc,code) ? DIGITVAL(code) \
391
+ (IS_CODE_DIGIT_ASCII(enc,code) ? DIGITVAL(code) \
260
392
  : (ONIGENC_IS_CODE_UPPER(enc,code) ? (code) - 'A' + 10 : (code) - 'a' + 10))
261
393
 
262
- #define IS_SINGLELINE(option) ((option) & ONIG_OPTION_SINGLELINE)
263
- #define IS_MULTILINE(option) ((option) & ONIG_OPTION_MULTILINE)
264
- #define IS_IGNORECASE(option) ((option) & ONIG_OPTION_IGNORECASE)
265
- #define IS_EXTEND(option) ((option) & ONIG_OPTION_EXTEND)
266
- #define IS_FIND_LONGEST(option) ((option) & ONIG_OPTION_FIND_LONGEST)
267
- #define IS_FIND_NOT_EMPTY(option) ((option) & ONIG_OPTION_FIND_NOT_EMPTY)
268
- #define IS_FIND_CONDITION(option) ((option) & \
269
- (ONIG_OPTION_FIND_LONGEST | ONIG_OPTION_FIND_NOT_EMPTY))
270
- #define IS_NOTBOL(option) ((option) & ONIG_OPTION_NOTBOL)
271
- #define IS_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL)
272
- #define IS_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION)
273
-
274
- /* OP_SET_OPTION is required for these options.
275
- #define IS_DYNAMIC_OPTION(option) \
276
- (((option) & (ONIG_OPTION_MULTILINE | ONIG_OPTION_IGNORECASE)) != 0)
277
- */
278
- /* ignore-case and multibyte status are included in compiled code. */
279
- #define IS_DYNAMIC_OPTION(option) 0
280
-
281
- #define DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag) \
282
- ((case_fold_flag) & ~INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR)
283
-
284
- #define REPEAT_INFINITE -1
285
- #define IS_REPEAT_INFINITE(n) ((n) == REPEAT_INFINITE)
394
+ #define OPTON_CALLBACK_EACH_MATCH(option) \
395
+ ((option) & ONIG_OPTION_CALLBACK_EACH_MATCH)
396
+ #define OPTON_FIND_LONGEST(option) ((option) & ONIG_OPTION_FIND_LONGEST)
397
+ #define OPTON_FIND_NOT_EMPTY(option) ((option) & ONIG_OPTION_FIND_NOT_EMPTY)
398
+ #define OPTON_NEGATE_SINGLELINE(option) ((option) & \
399
+ ONIG_OPTION_NEGATE_SINGLELINE)
400
+ #define OPTON_DONT_CAPTURE_GROUP(option) ((option) & \
401
+ ONIG_OPTION_DONT_CAPTURE_GROUP)
402
+ #define OPTON_CAPTURE_GROUP(option) ((option) & ONIG_OPTION_CAPTURE_GROUP)
403
+ #define OPTON_NOTBOL(option) ((option) & ONIG_OPTION_NOTBOL)
404
+ #define OPTON_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL)
405
+ #define OPTON_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION)
406
+ #define OPTON_CHECK_VALIDITY_OF_STRING(option) ((option) & \
407
+ ONIG_OPTION_CHECK_VALIDITY_OF_STRING)
408
+ #define OPTON_NOT_BEGIN_STRING(option) ((option) & ONIG_OPTION_NOT_BEGIN_STRING)
409
+ #define OPTON_NOT_END_STRING(option) ((option) & ONIG_OPTION_NOT_END_STRING)
410
+ #define OPTON_NOT_BEGIN_POSITION(option) ((option) & ONIG_OPTION_NOT_BEGIN_POSITION)
411
+ #define OPTON_MATCH_WHOLE_STRING(option) ((option) & ONIG_OPTION_MATCH_WHOLE_STRING)
412
+
413
+
414
+ #define INFINITE_REPEAT -1
415
+ #define IS_INFINITE_REPEAT(n) ((n) == INFINITE_REPEAT)
286
416
 
287
417
  /* bitset */
288
418
  #define BITS_PER_BYTE 8
289
419
  #define SINGLE_BYTE_SIZE (1 << BITS_PER_BYTE)
290
- #define BITS_IN_ROOM (sizeof(Bits) * BITS_PER_BYTE)
291
- #define BITSET_SIZE (SINGLE_BYTE_SIZE / BITS_IN_ROOM)
420
+ #define BITS_IN_ROOM 32 /* 4 * BITS_PER_BYTE */
421
+ #define BITSET_REAL_SIZE (SINGLE_BYTE_SIZE / BITS_IN_ROOM)
292
422
 
293
- #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
294
- typedef unsigned int Bits;
295
- #else
296
- typedef unsigned char Bits;
297
- #endif
298
- typedef Bits BitSet[BITSET_SIZE];
299
- typedef Bits* BitSetRef;
423
+ typedef uint32_t Bits;
424
+ typedef Bits BitSet[BITSET_REAL_SIZE];
425
+ typedef Bits* BitSetRef;
300
426
 
301
- #define SIZE_BITSET sizeof(BitSet)
427
+ #define SIZE_BITSET sizeof(BitSet)
302
428
 
303
429
  #define BITSET_CLEAR(bs) do {\
304
430
  int i;\
305
- for (i = 0; i < (int )BITSET_SIZE; i++) { (bs)[i] = 0; } \
431
+ for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { (bs)[i] = 0; } \
306
432
  } while (0)
307
433
 
308
- #define BS_ROOM(bs,pos) (bs)[pos / BITS_IN_ROOM]
309
- #define BS_BIT(pos) (1 << (pos % BITS_IN_ROOM))
434
+ #define BS_ROOM(bs,pos) (bs)[(unsigned int )(pos) >> 5]
435
+ #define BS_BIT(pos) (1u << ((unsigned int )(pos) & 0x1f))
310
436
 
311
437
  #define BITSET_AT(bs, pos) (BS_ROOM(bs,pos) & BS_BIT(pos))
312
438
  #define BITSET_SET_BIT(bs, pos) BS_ROOM(bs,pos) |= BS_BIT(pos)
313
439
  #define BITSET_CLEAR_BIT(bs, pos) BS_ROOM(bs,pos) &= ~(BS_BIT(pos))
314
440
  #define BITSET_INVERT_BIT(bs, pos) BS_ROOM(bs,pos) ^= BS_BIT(pos)
315
441
 
316
- /* bytes buffer */
317
- typedef struct _BBuf {
318
- UChar* p;
319
- unsigned int used;
320
- unsigned int alloc;
321
- } BBuf;
322
-
323
- #define BBUF_INIT(buf,size) onig_bbuf_init((BBuf* )(buf), (size))
324
-
325
- #define BBUF_SIZE_INC(buf,inc) do{\
326
- (buf)->alloc += (inc);\
327
- (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc);\
328
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\
329
- } while (0)
330
-
331
- #define BBUF_EXPAND(buf,low) do{\
332
- do { (buf)->alloc *= 2; } while ((buf)->alloc < (unsigned int )low);\
333
- (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc);\
334
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\
335
- } while (0)
336
-
337
- #define BBUF_ENSURE_SIZE(buf,size) do{\
338
- unsigned int new_alloc = (buf)->alloc;\
339
- while (new_alloc < (unsigned int )(size)) { new_alloc *= 2; }\
340
- if ((buf)->alloc != new_alloc) {\
341
- (buf)->p = (UChar* )xrealloc((buf)->p, new_alloc);\
342
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\
343
- (buf)->alloc = new_alloc;\
344
- }\
345
- } while (0)
346
-
347
- #define BBUF_WRITE(buf,pos,bytes,n) do{\
348
- int used = (pos) + (n);\
349
- if ((buf)->alloc < (unsigned int )used) BBUF_EXPAND((buf),used);\
350
- xmemcpy((buf)->p + (pos), (bytes), (n));\
351
- if ((buf)->used < (unsigned int )used) (buf)->used = used;\
352
- } while (0)
353
-
354
- #define BBUF_WRITE1(buf,pos,byte) do{\
355
- int used = (pos) + 1;\
356
- if ((buf)->alloc < (unsigned int )used) BBUF_EXPAND((buf),used);\
357
- (buf)->p[(pos)] = (byte);\
358
- if ((buf)->used < (unsigned int )used) (buf)->used = used;\
359
- } while (0)
360
-
361
- #define BBUF_ADD(buf,bytes,n) BBUF_WRITE((buf),(buf)->used,(bytes),(n))
362
- #define BBUF_ADD1(buf,byte) BBUF_WRITE1((buf),(buf)->used,(byte))
363
- #define BBUF_GET_ADD_ADDRESS(buf) ((buf)->p + (buf)->used)
364
- #define BBUF_GET_OFFSET_POS(buf) ((buf)->used)
365
-
366
- /* from < to */
367
- #define BBUF_MOVE_RIGHT(buf,from,to,n) do {\
368
- if ((unsigned int )((to)+(n)) > (buf)->alloc) BBUF_EXPAND((buf),(to) + (n));\
369
- xmemmove((buf)->p + (to), (buf)->p + (from), (n));\
370
- if ((unsigned int )((to)+(n)) > (buf)->used) (buf)->used = (to) + (n);\
371
- } while (0)
372
-
373
- /* from > to */
374
- #define BBUF_MOVE_LEFT(buf,from,to,n) do {\
375
- xmemmove((buf)->p + (to), (buf)->p + (from), (n));\
376
- } while (0)
377
-
378
- /* from > to */
379
- #define BBUF_MOVE_LEFT_REDUCE(buf,from,to) do {\
380
- xmemmove((buf)->p + (to), (buf)->p + (from), (buf)->used - (from));\
381
- (buf)->used -= (from - to);\
382
- } while (0)
383
-
384
- #define BBUF_INSERT(buf,pos,bytes,n) do {\
385
- if (pos >= (buf)->used) {\
386
- BBUF_WRITE(buf,pos,bytes,n);\
387
- }\
388
- else {\
389
- BBUF_MOVE_RIGHT((buf),(pos),(pos) + (n),((buf)->used - (pos)));\
390
- xmemcpy((buf)->p + (pos), (bytes), (n));\
391
- }\
392
- } while (0)
393
-
394
- #define BBUF_GET_BYTE(buf, pos) (buf)->p[(pos)]
395
-
396
-
397
- #define ANCHOR_BEGIN_BUF (1<<0)
398
- #define ANCHOR_BEGIN_LINE (1<<1)
399
- #define ANCHOR_BEGIN_POSITION (1<<2)
400
- #define ANCHOR_END_BUF (1<<3)
401
- #define ANCHOR_SEMI_END_BUF (1<<4)
402
- #define ANCHOR_END_LINE (1<<5)
403
-
404
- #define ANCHOR_WORD_BOUND (1<<6)
405
- #define ANCHOR_NOT_WORD_BOUND (1<<7)
406
- #define ANCHOR_WORD_BEGIN (1<<8)
407
- #define ANCHOR_WORD_END (1<<9)
408
- #define ANCHOR_PREC_READ (1<<10)
409
- #define ANCHOR_PREC_READ_NOT (1<<11)
410
- #define ANCHOR_LOOK_BEHIND (1<<12)
411
- #define ANCHOR_LOOK_BEHIND_NOT (1<<13)
412
-
413
- #define ANCHOR_ANYCHAR_STAR (1<<14) /* ".*" optimize info */
414
- #define ANCHOR_ANYCHAR_STAR_ML (1<<15) /* ".*" optimize info (multi-line) */
442
+ /* has body */
443
+ #define ANCR_PREC_READ (1<<0)
444
+ #define ANCR_PREC_READ_NOT (1<<1)
445
+ #define ANCR_LOOK_BEHIND (1<<2)
446
+ #define ANCR_LOOK_BEHIND_NOT (1<<3)
447
+ /* no body */
448
+ #define ANCR_BEGIN_BUF (1<<4)
449
+ #define ANCR_BEGIN_LINE (1<<5)
450
+ #define ANCR_BEGIN_POSITION (1<<6)
451
+ #define ANCR_END_BUF (1<<7)
452
+ #define ANCR_SEMI_END_BUF (1<<8)
453
+ #define ANCR_END_LINE (1<<9)
454
+ #define ANCR_WORD_BOUNDARY (1<<10)
455
+ #define ANCR_NO_WORD_BOUNDARY (1<<11)
456
+ #define ANCR_WORD_BEGIN (1<<12)
457
+ #define ANCR_WORD_END (1<<13)
458
+ #define ANCR_ANYCHAR_INF (1<<14)
459
+ #define ANCR_ANYCHAR_INF_ML (1<<15)
460
+ #define ANCR_TEXT_SEGMENT_BOUNDARY (1<<16)
461
+ #define ANCR_NO_TEXT_SEGMENT_BOUNDARY (1<<17)
462
+
463
+
464
+ #define ANCHOR_HAS_BODY(a) ((a)->type < ANCR_BEGIN_BUF)
465
+
466
+ #define IS_WORD_ANCHOR_TYPE(type) \
467
+ ((type) == ANCR_WORD_BOUNDARY || (type) == ANCR_NO_WORD_BOUNDARY || \
468
+ (type) == ANCR_WORD_BEGIN || (type) == ANCR_WORD_END)
415
469
 
416
470
  /* operation code */
417
471
  enum OpCode {
418
- OP_FINISH = 0, /* matching process terminator (no more alternative) */
419
- OP_END = 1, /* pattern code terminator (success end) */
420
-
421
- OP_EXACT1 = 2, /* single byte, N = 1 */
422
- OP_EXACT2, /* single byte, N = 2 */
423
- OP_EXACT3, /* single byte, N = 3 */
424
- OP_EXACT4, /* single byte, N = 4 */
425
- OP_EXACT5, /* single byte, N = 5 */
426
- OP_EXACTN, /* single byte */
427
- OP_EXACTMB2N1, /* mb-length = 2 N = 1 */
428
- OP_EXACTMB2N2, /* mb-length = 2 N = 2 */
429
- OP_EXACTMB2N3, /* mb-length = 2 N = 3 */
430
- OP_EXACTMB2N, /* mb-length = 2 */
431
- OP_EXACTMB3N, /* mb-length = 3 */
432
- OP_EXACTMBN, /* other length */
433
-
434
- OP_EXACT1_IC, /* single byte, N = 1, ignore case */
435
- OP_EXACTN_IC, /* single byte, ignore case */
436
-
472
+ OP_FINISH = 0, /* matching process terminator (no more alternative) */
473
+ OP_END, /* pattern code terminator (success end) */
474
+ OP_STR_1, /* single byte, N = 1 */
475
+ OP_STR_2, /* single byte, N = 2 */
476
+ OP_STR_3, /* single byte, N = 3 */
477
+ OP_STR_4, /* single byte, N = 4 */
478
+ OP_STR_5, /* single byte, N = 5 */
479
+ OP_STR_N, /* single byte */
480
+ OP_STR_MB2N1, /* mb-length = 2 N = 1 */
481
+ OP_STR_MB2N2, /* mb-length = 2 N = 2 */
482
+ OP_STR_MB2N3, /* mb-length = 2 N = 3 */
483
+ OP_STR_MB2N, /* mb-length = 2 */
484
+ OP_STR_MB3N, /* mb-length = 3 */
485
+ OP_STR_MBN, /* other length */
437
486
  OP_CCLASS,
438
487
  OP_CCLASS_MB,
439
488
  OP_CCLASS_MIX,
440
489
  OP_CCLASS_NOT,
441
490
  OP_CCLASS_MB_NOT,
442
491
  OP_CCLASS_MIX_NOT,
443
- OP_CCLASS_NODE, /* pointer to CClassNode node */
444
-
445
492
  OP_ANYCHAR, /* "." */
446
493
  OP_ANYCHAR_ML, /* "." multi-line */
447
494
  OP_ANYCHAR_STAR, /* ".*" */
448
495
  OP_ANYCHAR_ML_STAR, /* ".*" multi-line */
449
496
  OP_ANYCHAR_STAR_PEEK_NEXT,
450
497
  OP_ANYCHAR_ML_STAR_PEEK_NEXT,
451
-
452
498
  OP_WORD,
453
- OP_NOT_WORD,
454
- OP_WORD_BOUND,
455
- OP_NOT_WORD_BOUND,
499
+ OP_WORD_ASCII,
500
+ OP_NO_WORD,
501
+ OP_NO_WORD_ASCII,
502
+ OP_WORD_BOUNDARY,
503
+ OP_NO_WORD_BOUNDARY,
456
504
  OP_WORD_BEGIN,
457
505
  OP_WORD_END,
458
-
506
+ OP_TEXT_SEGMENT_BOUNDARY,
459
507
  OP_BEGIN_BUF,
460
508
  OP_END_BUF,
461
509
  OP_BEGIN_LINE,
462
510
  OP_END_LINE,
463
511
  OP_SEMI_END_BUF,
464
- OP_BEGIN_POSITION,
465
-
512
+ OP_CHECK_POSITION,
466
513
  OP_BACKREF1,
467
514
  OP_BACKREF2,
468
- OP_BACKREFN,
469
- OP_BACKREFN_IC,
515
+ OP_BACKREF_N,
516
+ OP_BACKREF_N_IC,
470
517
  OP_BACKREF_MULTI,
471
518
  OP_BACKREF_MULTI_IC,
472
- OP_BACKREF_WITH_LEVEL, /* \k<xxx+n>, \k<xxx-n> */
473
-
474
- OP_MEMORY_START,
475
- OP_MEMORY_START_PUSH, /* push back-tracker to stack */
476
- OP_MEMORY_END_PUSH, /* push back-tracker to stack */
477
- OP_MEMORY_END_PUSH_REC, /* push back-tracker to stack */
478
- OP_MEMORY_END,
479
- OP_MEMORY_END_REC, /* push marker to stack */
480
-
519
+ #ifdef USE_BACKREF_WITH_LEVEL
520
+ OP_BACKREF_WITH_LEVEL, /* \k<xxx+n>, \k<xxx-n> */
521
+ OP_BACKREF_WITH_LEVEL_IC, /* \k<xxx+n>, \k<xxx-n> */
522
+ #endif
523
+ OP_BACKREF_CHECK, /* (?(n)), (?('name')) */
524
+ #ifdef USE_BACKREF_WITH_LEVEL
525
+ OP_BACKREF_CHECK_WITH_LEVEL, /* (?(n-level)), (?('name-level')) */
526
+ #endif
527
+ OP_MEM_START,
528
+ OP_MEM_START_PUSH, /* push back-tracker to stack */
529
+ OP_MEM_END_PUSH, /* push back-tracker to stack */
530
+ #ifdef USE_CALL
531
+ OP_MEM_END_PUSH_REC, /* push back-tracker to stack */
532
+ #endif
533
+ OP_MEM_END,
534
+ #ifdef USE_CALL
535
+ OP_MEM_END_REC, /* push marker to stack */
536
+ #endif
481
537
  OP_FAIL, /* pop stack and move */
482
538
  OP_JUMP,
483
539
  OP_PUSH,
540
+ OP_PUSH_SUPER,
484
541
  OP_POP,
485
- OP_PUSH_OR_JUMP_EXACT1, /* if match exact then push, else jump. */
486
- OP_PUSH_IF_PEEK_NEXT, /* if match exact then push, else none. */
487
- OP_REPEAT, /* {n,m} */
488
- OP_REPEAT_NG, /* {n,m}? (non greedy) */
542
+ OP_POP_TO_MARK,
543
+ #ifdef USE_OP_PUSH_OR_JUMP_EXACT
544
+ OP_PUSH_OR_JUMP_EXACT1, /* if match exact then push, else jump. */
545
+ #endif
546
+ OP_PUSH_IF_PEEK_NEXT, /* if match exact then push, else none. */
547
+ OP_REPEAT, /* {n,m} */
548
+ OP_REPEAT_NG, /* {n,m}? (non greedy) */
489
549
  OP_REPEAT_INC,
490
- OP_REPEAT_INC_NG, /* non greedy */
491
- OP_REPEAT_INC_SG, /* search and get in stack */
492
- OP_REPEAT_INC_NG_SG, /* search and get in stack (non greedy) */
493
- OP_NULL_CHECK_START, /* null loop checker start */
494
- OP_NULL_CHECK_END, /* null loop checker end */
495
- OP_NULL_CHECK_END_MEMST, /* null loop checker end (with capture status) */
496
- OP_NULL_CHECK_END_MEMST_PUSH, /* with capture status and push check-end */
497
-
498
- OP_PUSH_POS, /* (?=...) start */
499
- OP_POP_POS, /* (?=...) end */
500
- OP_PUSH_POS_NOT, /* (?!...) start */
501
- OP_FAIL_POS, /* (?!...) end */
502
- OP_PUSH_STOP_BT, /* (?>...) start */
503
- OP_POP_STOP_BT, /* (?>...) end */
504
- OP_LOOK_BEHIND, /* (?<=...) start (no needs end opcode) */
505
- OP_PUSH_LOOK_BEHIND_NOT, /* (?<!...) start */
506
- OP_FAIL_LOOK_BEHIND_NOT, /* (?<!...) end */
507
-
508
- OP_CALL, /* \g<name> */
550
+ OP_REPEAT_INC_NG, /* non greedy */
551
+ OP_EMPTY_CHECK_START, /* null loop checker start */
552
+ OP_EMPTY_CHECK_END, /* null loop checker end */
553
+ OP_EMPTY_CHECK_END_MEMST, /* null loop checker end (with capture status) */
554
+ #ifdef USE_CALL
555
+ OP_EMPTY_CHECK_END_MEMST_PUSH, /* with capture status and push check-end */
556
+ #endif
557
+ OP_MOVE,
558
+ OP_STEP_BACK_START,
559
+ OP_STEP_BACK_NEXT,
560
+ OP_CUT_TO_MARK,
561
+ OP_MARK,
562
+ OP_SAVE_VAL,
563
+ OP_UPDATE_VAR,
564
+ #ifdef USE_CALL
565
+ OP_CALL, /* \g<name> */
509
566
  OP_RETURN,
567
+ #endif
568
+ #ifdef USE_CALLOUT
569
+ OP_CALLOUT_CONTENTS, /* (?{...}) (?{{...}}) */
570
+ OP_CALLOUT_NAME, /* (*name) (*name[tag](args...)) */
571
+ #endif
572
+ };
510
573
 
511
- OP_STATE_CHECK_PUSH, /* combination explosion check and push */
512
- OP_STATE_CHECK_PUSH_OR_JUMP, /* check ok -> push, else jump */
513
- OP_STATE_CHECK, /* check only */
514
- OP_STATE_CHECK_ANYCHAR_STAR,
515
- OP_STATE_CHECK_ANYCHAR_ML_STAR,
574
+ enum SaveType {
575
+ SAVE_KEEP = 0, /* SAVE S */
576
+ SAVE_S = 1,
577
+ SAVE_RIGHT_RANGE = 2,
578
+ };
516
579
 
517
- /* no need: IS_DYNAMIC_OPTION() == 0 */
518
- OP_SET_OPTION_PUSH, /* set option and push recover option */
519
- OP_SET_OPTION /* set option */
580
+ enum UpdateVarType {
581
+ UPDATE_VAR_KEEP_FROM_STACK_LAST = 0,
582
+ UPDATE_VAR_S_FROM_STACK = 1,
583
+ UPDATE_VAR_RIGHT_RANGE_FROM_STACK = 2,
584
+ UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK = 3,
585
+ UPDATE_VAR_RIGHT_RANGE_TO_S = 4,
586
+ UPDATE_VAR_RIGHT_RANGE_INIT = 5,
587
+ };
588
+
589
+ enum CheckPositionType {
590
+ CHECK_POSITION_SEARCH_START = 0,
591
+ CHECK_POSITION_CURRENT_RIGHT_RANGE = 1,
592
+ };
593
+
594
+ enum TextSegmentBoundaryType {
595
+ EXTENDED_GRAPHEME_CLUSTER_BOUNDARY = 0,
596
+ WORD_BOUNDARY = 1,
520
597
  };
521
598
 
522
599
  typedef int RelAddrType;
523
600
  typedef int AbsAddrType;
524
601
  typedef int LengthType;
602
+ typedef int RelPositionType;
525
603
  typedef int RepeatNumType;
526
- typedef short int MemNumType;
527
- typedef short int StateCheckNumType;
604
+ typedef int MemNumType;
528
605
  typedef void* PointerType;
606
+ typedef int SaveType;
607
+ typedef int UpdateVarType;
608
+ typedef int ModeType;
529
609
 
530
610
  #define SIZE_OPCODE 1
531
611
  #define SIZE_RELADDR sizeof(RelAddrType)
532
612
  #define SIZE_ABSADDR sizeof(AbsAddrType)
533
613
  #define SIZE_LENGTH sizeof(LengthType)
534
614
  #define SIZE_MEMNUM sizeof(MemNumType)
535
- #define SIZE_STATE_CHECK_NUM sizeof(StateCheckNumType)
536
615
  #define SIZE_REPEATNUM sizeof(RepeatNumType)
537
616
  #define SIZE_OPTION sizeof(OnigOptionType)
538
617
  #define SIZE_CODE_POINT sizeof(OnigCodePoint)
539
618
  #define SIZE_POINTER sizeof(PointerType)
540
-
541
-
542
- #define GET_RELADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, RelAddrType)
543
- #define GET_ABSADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, AbsAddrType)
544
- #define GET_LENGTH_INC(len,p) PLATFORM_GET_INC(len, p, LengthType)
545
- #define GET_MEMNUM_INC(num,p) PLATFORM_GET_INC(num, p, MemNumType)
546
- #define GET_REPEATNUM_INC(num,p) PLATFORM_GET_INC(num, p, RepeatNumType)
547
- #define GET_OPTION_INC(option,p) PLATFORM_GET_INC(option, p, OnigOptionType)
548
- #define GET_POINTER_INC(ptr,p) PLATFORM_GET_INC(ptr, p, PointerType)
549
- #define GET_STATE_CHECK_NUM_INC(num,p) PLATFORM_GET_INC(num, p, StateCheckNumType)
619
+ #define SIZE_SAVE_TYPE sizeof(SaveType)
620
+ #define SIZE_UPDATE_VAR_TYPE sizeof(UpdateVarType)
621
+ #define SIZE_MODE sizeof(ModeType)
550
622
 
551
623
  /* code point's address must be aligned address. */
552
624
  #define GET_CODE_POINT(code,p) code = *((OnigCodePoint* )(p))
553
- #define GET_BYTE_INC(byte,p) do{\
554
- byte = *(p);\
555
- (p)++;\
556
- } while(0)
557
625
 
558
626
 
559
627
  /* op-code + arg size */
560
- #define SIZE_OP_ANYCHAR_STAR SIZE_OPCODE
561
- #define SIZE_OP_ANYCHAR_STAR_PEEK_NEXT (SIZE_OPCODE + 1)
562
- #define SIZE_OP_JUMP (SIZE_OPCODE + SIZE_RELADDR)
563
- #define SIZE_OP_PUSH (SIZE_OPCODE + SIZE_RELADDR)
564
- #define SIZE_OP_POP SIZE_OPCODE
565
- #define SIZE_OP_PUSH_OR_JUMP_EXACT1 (SIZE_OPCODE + SIZE_RELADDR + 1)
566
- #define SIZE_OP_PUSH_IF_PEEK_NEXT (SIZE_OPCODE + SIZE_RELADDR + 1)
567
- #define SIZE_OP_REPEAT_INC (SIZE_OPCODE + SIZE_MEMNUM)
568
- #define SIZE_OP_REPEAT_INC_NG (SIZE_OPCODE + SIZE_MEMNUM)
569
- #define SIZE_OP_PUSH_POS SIZE_OPCODE
570
- #define SIZE_OP_PUSH_POS_NOT (SIZE_OPCODE + SIZE_RELADDR)
571
- #define SIZE_OP_POP_POS SIZE_OPCODE
572
- #define SIZE_OP_FAIL_POS SIZE_OPCODE
573
- #define SIZE_OP_SET_OPTION (SIZE_OPCODE + SIZE_OPTION)
574
- #define SIZE_OP_SET_OPTION_PUSH (SIZE_OPCODE + SIZE_OPTION)
575
- #define SIZE_OP_FAIL SIZE_OPCODE
576
- #define SIZE_OP_MEMORY_START (SIZE_OPCODE + SIZE_MEMNUM)
577
- #define SIZE_OP_MEMORY_START_PUSH (SIZE_OPCODE + SIZE_MEMNUM)
578
- #define SIZE_OP_MEMORY_END_PUSH (SIZE_OPCODE + SIZE_MEMNUM)
579
- #define SIZE_OP_MEMORY_END_PUSH_REC (SIZE_OPCODE + SIZE_MEMNUM)
580
- #define SIZE_OP_MEMORY_END (SIZE_OPCODE + SIZE_MEMNUM)
581
- #define SIZE_OP_MEMORY_END_REC (SIZE_OPCODE + SIZE_MEMNUM)
582
- #define SIZE_OP_PUSH_STOP_BT SIZE_OPCODE
583
- #define SIZE_OP_POP_STOP_BT SIZE_OPCODE
584
- #define SIZE_OP_NULL_CHECK_START (SIZE_OPCODE + SIZE_MEMNUM)
585
- #define SIZE_OP_NULL_CHECK_END (SIZE_OPCODE + SIZE_MEMNUM)
586
- #define SIZE_OP_LOOK_BEHIND (SIZE_OPCODE + SIZE_LENGTH)
587
- #define SIZE_OP_PUSH_LOOK_BEHIND_NOT (SIZE_OPCODE + SIZE_RELADDR + SIZE_LENGTH)
588
- #define SIZE_OP_FAIL_LOOK_BEHIND_NOT SIZE_OPCODE
589
- #define SIZE_OP_CALL (SIZE_OPCODE + SIZE_ABSADDR)
590
- #define SIZE_OP_RETURN SIZE_OPCODE
591
-
592
- #ifdef USE_COMBINATION_EXPLOSION_CHECK
593
- #define SIZE_OP_STATE_CHECK (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
594
- #define SIZE_OP_STATE_CHECK_PUSH (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
595
- #define SIZE_OP_STATE_CHECK_PUSH_OR_JUMP (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
596
- #define SIZE_OP_STATE_CHECK_ANYCHAR_STAR (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
628
+
629
+ /* for relative address increment to go next op. */
630
+ #define SIZE_INC 1
631
+
632
+ #define OPSIZE_ANYCHAR_STAR 1
633
+ #define OPSIZE_ANYCHAR_STAR_PEEK_NEXT 1
634
+ #define OPSIZE_JUMP 1
635
+ #define OPSIZE_PUSH 1
636
+ #define OPSIZE_PUSH_SUPER 1
637
+ #define OPSIZE_POP 1
638
+ #define OPSIZE_POP_TO_MARK 1
639
+ #ifdef USE_OP_PUSH_OR_JUMP_EXACT
640
+ #define OPSIZE_PUSH_OR_JUMP_EXACT1 1
597
641
  #endif
642
+ #define OPSIZE_PUSH_IF_PEEK_NEXT 1
643
+ #define OPSIZE_REPEAT 1
644
+ #define OPSIZE_REPEAT_INC 1
645
+ #define OPSIZE_REPEAT_INC_NG 1
646
+ #define OPSIZE_WORD_BOUNDARY 1
647
+ #define OPSIZE_BACKREF 1
648
+ #define OPSIZE_FAIL 1
649
+ #define OPSIZE_MEM_START 1
650
+ #define OPSIZE_MEM_START_PUSH 1
651
+ #define OPSIZE_MEM_END_PUSH 1
652
+ #define OPSIZE_MEM_END_PUSH_REC 1
653
+ #define OPSIZE_MEM_END 1
654
+ #define OPSIZE_MEM_END_REC 1
655
+ #define OPSIZE_EMPTY_CHECK_START 1
656
+ #define OPSIZE_EMPTY_CHECK_END 1
657
+ #define OPSIZE_CHECK_POSITION 1
658
+ #define OPSIZE_CALL 1
659
+ #define OPSIZE_RETURN 1
660
+ #define OPSIZE_MOVE 1
661
+ #define OPSIZE_STEP_BACK_START 1
662
+ #define OPSIZE_STEP_BACK_NEXT 1
663
+ #define OPSIZE_CUT_TO_MARK 1
664
+ #define OPSIZE_MARK 1
665
+ #define OPSIZE_SAVE_VAL 1
666
+ #define OPSIZE_UPDATE_VAR 1
667
+
668
+ #ifdef USE_CALLOUT
669
+ #define OPSIZE_CALLOUT_CONTENTS 1
670
+ #define OPSIZE_CALLOUT_NAME 1
671
+ #endif
672
+
598
673
 
599
674
  #define MC_ESC(syn) (syn)->meta_char_table.esc
600
675
  #define MC_ANYCHAR(syn) (syn)->meta_char_table.anychar
@@ -644,135 +719,326 @@ typedef void* PointerType;
644
719
  #define FLAG_NCCLASS_SHARE (1<<1)
645
720
 
646
721
  #define NCCLASS_SET_NOT(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_NOT)
647
- #define NCCLASS_SET_SHARE(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_SHARE)
648
722
  #define NCCLASS_CLEAR_NOT(nd) NCCLASS_FLAG_CLEAR(nd, FLAG_NCCLASS_NOT)
649
723
  #define IS_NCCLASS_NOT(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_NOT)
650
- #define IS_NCCLASS_SHARE(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_SHARE)
651
724
 
652
- typedef struct {
653
- int type;
654
- /* struct _Node* next; */
655
- /* unsigned int flags; */
656
- } NodeBase;
657
725
 
658
726
  typedef struct {
659
- NodeBase base;
660
- unsigned int flags;
661
- BitSet bs;
662
- BBuf* mbuf; /* multi-byte info or NULL */
663
- } CClassNode;
664
-
665
- typedef long OnigStackIndex;
666
-
667
- typedef struct _OnigStackType {
668
- unsigned int type;
727
+ #ifdef USE_DIRECT_THREADED_CODE
728
+ const void* opaddr;
729
+ #else
730
+ enum OpCode opcode;
731
+ #endif
669
732
  union {
670
733
  struct {
671
- UChar *pcode; /* byte code position */
672
- UChar *pstr; /* string position */
673
- UChar *pstr_prev; /* previous char position of pstr */
674
- #ifdef USE_COMBINATION_EXPLOSION_CHECK
675
- unsigned int state_check;
676
- #endif
677
- } state;
734
+ UChar s[16]; /* Now used first 7 bytes only. */
735
+ } exact;
736
+ struct {
737
+ UChar* s;
738
+ LengthType n; /* number of chars */
739
+ } exact_n; /* EXACTN, EXACTN_IC, EXACTMB2N, EXACTMB3N */
740
+ struct {
741
+ UChar* s;
742
+ LengthType n; /* number of chars */
743
+ LengthType len; /* char byte length */
744
+ } exact_len_n; /* EXACTMBN */
745
+ struct {
746
+ BitSetRef bsp;
747
+ } cclass;
748
+ struct {
749
+ void* mb;
750
+ } cclass_mb;
751
+ struct {
752
+ void* mb; /* mb must be same position with cclass_mb for match_at(). */
753
+ BitSetRef bsp;
754
+ } cclass_mix;
755
+ struct {
756
+ UChar c;
757
+ } anychar_star_peek_next;
758
+ struct {
759
+ ModeType mode;
760
+ } word_boundary; /* OP_WORD_BOUNDARY, OP_NO_WORD_BOUNDARY, OP_WORD_BEGIN, OP_WORD_END */
678
761
  struct {
679
- int count; /* for OP_REPEAT_INC, OP_REPEAT_INC_NG */
680
- UChar *pcode; /* byte code position (head of repeated target) */
681
- int num; /* repeat id */
682
- } repeat;
762
+ enum TextSegmentBoundaryType type;
763
+ int not;
764
+ } text_segment_boundary;
683
765
  struct {
684
- OnigStackIndex si; /* index of stack */
685
- } repeat_inc;
766
+ enum CheckPositionType type;
767
+ } check_position;
686
768
  struct {
687
- int num; /* memory num */
688
- UChar *pstr; /* start/end position */
689
- /* Following information is set, if this stack type is MEM-START */
690
- OnigStackIndex start; /* prev. info (for backtrack "(...)*" ) */
691
- OnigStackIndex end; /* prev. info (for backtrack "(...)*" ) */
692
- } mem;
769
+ union {
770
+ MemNumType n1; /* num == 1 */
771
+ MemNumType* ns; /* num > 1 */
772
+ };
773
+ int num;
774
+ int nest_level;
775
+ } backref_general; /* BACKREF_MULTI, BACKREF_MULTI_IC, BACKREF_WITH_LEVEL, BACKREF_CHECK, BACKREF_CHECK_WITH_LEVEL, */
693
776
  struct {
694
- int num; /* null check id */
695
- UChar *pstr; /* start position */
696
- } null_check;
697
- #ifdef USE_SUBEXP_CALL
777
+ MemNumType n1;
778
+ } backref_n; /* BACKREF_N, BACKREF_N_IC */
698
779
  struct {
699
- UChar *ret_addr; /* byte code position */
700
- int num; /* null check id */
701
- UChar *pstr; /* string position */
702
- } call_frame;
780
+ MemNumType num;
781
+ } memory_start; /* MEMORY_START, MEMORY_START_PUSH */
782
+ struct {
783
+ MemNumType num;
784
+ } memory_end; /* MEMORY_END, MEMORY_END_REC, MEMORY_END_PUSH, MEMORY_END_PUSH_REC */
785
+ struct {
786
+ RelAddrType addr;
787
+ } jump;
788
+ struct {
789
+ RelAddrType addr;
790
+ } push;
791
+ struct {
792
+ RelAddrType addr;
793
+ UChar c;
794
+ } push_or_jump_exact1;
795
+ struct {
796
+ RelAddrType addr;
797
+ UChar c;
798
+ } push_if_peek_next;
799
+ struct {
800
+ MemNumType id;
801
+ } pop_to_mark;
802
+ struct {
803
+ MemNumType id;
804
+ RelAddrType addr;
805
+ } repeat; /* REPEAT, REPEAT_NG */
806
+ struct {
807
+ MemNumType id;
808
+ } repeat_inc; /* REPEAT_INC, REPEAT_INC_NG */
809
+ struct {
810
+ MemNumType mem;
811
+ } empty_check_start;
812
+ struct {
813
+ MemNumType mem;
814
+ MemStatusType empty_status_mem;
815
+ } empty_check_end; /* EMPTY_CHECK_END, EMPTY_CHECK_END_MEMST, EMPTY_CHECK_END_MEMST_PUSH */
816
+ struct {
817
+ RelAddrType addr;
818
+ } prec_read_not_start;
819
+ struct {
820
+ LengthType len;
821
+ } look_behind;
822
+ struct {
823
+ LengthType len;
824
+ RelAddrType addr;
825
+ } look_behind_not_start;
826
+ struct {
827
+ RelPositionType n; /* char relative position */
828
+ } move;
829
+ struct {
830
+ LengthType initial; /* char length */
831
+ LengthType remaining; /* char length */
832
+ RelAddrType addr;
833
+ } step_back_start;
834
+ struct {
835
+ MemNumType id;
836
+ int restore_pos; /* flag: restore current string position */
837
+ } cut_to_mark;
838
+ struct {
839
+ MemNumType id;
840
+ int save_pos; /* flag: save current string position */
841
+ } mark;
842
+ struct {
843
+ SaveType type;
844
+ MemNumType id;
845
+ } save_val;
846
+ struct {
847
+ UpdateVarType type;
848
+ MemNumType id;
849
+ int clear; /* UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK or UPDATE_VAR_RIGHT_RANGE_FROM_STACK */
850
+ } update_var;
851
+ struct {
852
+ AbsAddrType addr;
853
+ #if defined(ONIG_DEBUG_MATCH_COUNTER) || defined(ONIG_DEBUG_CALL)
854
+ MemNumType called_mem;
703
855
  #endif
704
- } u;
705
- } OnigStackType;
856
+ } call;
857
+ #ifdef USE_CALLOUT
858
+ struct {
859
+ MemNumType num;
860
+ } callout_contents;
861
+ struct {
862
+ MemNumType num;
863
+ MemNumType id;
864
+ } callout_name;
865
+ #endif
866
+ };
867
+ } Operation;
706
868
 
707
869
  typedef struct {
708
- void* stack_p;
709
- int stack_n;
710
- OnigOptionType options;
711
- OnigRegion* region;
712
- int ptr_num;
713
- const UChar* start; /* search start position (for \G: BEGIN_POSITION) */
714
- #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE
715
- int best_len; /* for ONIG_OPTION_FIND_LONGEST */
716
- UChar* best_s;
870
+ const UChar* pattern;
871
+ const UChar* pattern_end;
872
+ #ifdef USE_CALLOUT
873
+ void* tag_table;
874
+ int callout_num;
875
+ int callout_list_alloc;
876
+ CalloutListEntry* callout_list; /* index: callout num */
717
877
  #endif
718
- #ifdef USE_COMBINATION_EXPLOSION_CHECK
719
- void* state_check_buff;
720
- int state_check_buff_size;
721
- #endif
722
- } OnigMatchArg;
878
+ } RegexExt;
723
879
 
880
+ typedef struct {
881
+ int lower;
882
+ int upper;
883
+ union {
884
+ Operation* pcode; /* address of repeated body */
885
+ int offset;
886
+ } u;
887
+ } RepeatRange;
724
888
 
725
- #define IS_CODE_SB_WORD(enc,code) \
726
- (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code))
889
+ struct re_pattern_buffer {
890
+ /* common members of BBuf(bytes-buffer) */
891
+ Operation* ops;
892
+ #ifdef USE_DIRECT_THREADED_CODE
893
+ enum OpCode* ocs;
894
+ #endif
895
+ Operation* ops_curr;
896
+ unsigned int ops_used; /* used space for ops */
897
+ unsigned int ops_alloc; /* allocated space for ops */
898
+ unsigned char* string_pool;
899
+ unsigned char* string_pool_end;
900
+
901
+ int num_mem; /* used memory(...) num counted from 1 */
902
+ int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */
903
+ int num_empty_check; /* OP_EMPTY_CHECK_START/END id counter */
904
+ int num_call; /* number of subexp call */
905
+ MemStatusType capture_history; /* (?@...) flag (1-31) */
906
+ MemStatusType push_mem_start; /* need backtrack flag */
907
+ MemStatusType push_mem_end; /* need backtrack flag */
908
+ int stack_pop_level;
909
+ int repeat_range_alloc;
910
+ RepeatRange* repeat_range;
911
+
912
+ OnigEncoding enc;
913
+ OnigOptionType options;
914
+ OnigSyntaxType* syntax;
915
+ OnigCaseFoldType case_fold_flag;
916
+ void* name_table;
917
+
918
+ /* optimization info (string search, char-map and anchors) */
919
+ int optimize; /* optimize flag */
920
+ int threshold_len; /* search str-length for apply optimize */
921
+ int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */
922
+ OnigLen anc_dist_min; /* (SEMI_)END_BUF anchor distance */
923
+ OnigLen anc_dist_max; /* (SEMI_)END_BUF anchor distance */
924
+ int sub_anchor; /* start-anchor for exact or map */
925
+ unsigned char *exact;
926
+ unsigned char *exact_end;
927
+ unsigned char map[CHAR_MAP_SIZE]; /* used as BMH skip or char-map */
928
+ int map_offset;
929
+ OnigLen dist_min; /* min-distance of exact or map */
930
+ OnigLen dist_max; /* max-distance of exact or map */
931
+ RegexExt* extp;
932
+ };
727
933
 
728
- typedef struct OnigEndCallListItem {
729
- struct OnigEndCallListItem* next;
730
- void (*func)(void);
731
- } OnigEndCallListItemType;
934
+ #define COP(reg) ((reg)->ops_curr)
935
+ #define COP_CURR_OFFSET(reg) ((reg)->ops_used - 1)
936
+ #define COP_CURR_OFFSET_BYTES(reg, p) \
937
+ ((int )((char* )(&((reg)->ops_curr->p)) - (char* )((reg)->ops)))
732
938
 
733
- extern void onig_add_end_call(void (*func)(void));
734
939
 
940
+ extern void onig_add_end_call(void (*func)(void));
941
+ extern void onig_warning(const char* s);
942
+ extern UChar* onig_error_code_to_format P_((int code));
943
+ extern void ONIG_VARIADIC_FUNC_ATTR onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...));
944
+ extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo));
945
+ extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, void* /* CClassNode* */ cc));
946
+ extern RegexExt* onig_get_regex_ext(regex_t* reg);
947
+ extern int onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end);
948
+ extern int onig_positive_int_multiply(int x, int y);
949
+ extern hash_table_type onig_st_init_strend_table_with_size P_((int size));
950
+ extern int onig_st_lookup_strend P_((hash_table_type table, const UChar* str_key, const UChar* end_key, hash_data_type *value));
951
+ extern int onig_st_insert_strend P_((hash_table_type table, const UChar* str_key, const UChar* end_key, hash_data_type value));
735
952
 
736
953
  #ifdef ONIG_DEBUG
737
954
 
738
- typedef struct {
739
- short int opcode;
740
- char* name;
741
- short int arg_type;
742
- } OnigOpInfoType;
743
-
744
- extern OnigOpInfoType OnigOpInfo[];
745
-
746
-
747
- extern void onig_print_compiled_byte_code P_((FILE* f, UChar* bp, UChar** nextp, OnigEncoding enc));
955
+ #ifdef ONIG_DEBUG_COMPILE
956
+ extern void onig_print_compiled_byte_code_list(FILE* f, regex_t* reg);
957
+ #endif
748
958
 
749
959
  #ifdef ONIG_DEBUG_STATISTICS
750
960
  extern void onig_statistics_init P_((void));
751
- extern void onig_print_statistics P_((FILE* f));
752
- #endif
961
+ extern int onig_print_statistics P_((FILE* f));
753
962
  #endif
754
963
 
755
- extern void onig_warning(const char* s);
756
- extern UChar* onig_error_code_to_format P_((int code));
757
- extern void onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...));
758
- extern int onig_bbuf_init P_((BBuf* buf, int size));
759
- extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo));
760
- extern void onig_transfer P_((regex_t* to, regex_t* from));
761
- extern int onig_is_code_in_cc P_((OnigEncoding enc, OnigCodePoint code, CClassNode* cc));
762
- extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, CClassNode* cc));
964
+ #endif /* ONIG_DEBUG */
965
+
966
+ #ifdef USE_CALLOUT
967
+
968
+ extern OnigCalloutType onig_get_callout_type_by_name_id(int name_id);
969
+ extern OnigCalloutFunc onig_get_callout_start_func_by_name_id(int id);
970
+ extern OnigCalloutFunc onig_get_callout_end_func_by_name_id(int id);
971
+ extern int onig_callout_tag_table_free(void* table);
972
+ extern void onig_free_reg_callout_list(int n, CalloutListEntry* list);
973
+ extern CalloutListEntry* onig_reg_callout_list_at(regex_t* reg, int num);
974
+ extern OnigCalloutFunc onig_get_callout_start_func(regex_t* reg, int callout_num);
975
+
976
+ /* for definition of builtin callout */
977
+ #define BC0_P(name, func) do {\
978
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
979
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
980
+ (UChar* )(name), (UChar* )((name) + len),\
981
+ ONIG_CALLOUT_IN_PROGRESS,\
982
+ onig_builtin_ ## func, 0, 0, 0, 0, 0);\
983
+ if (id < 0) return id;\
984
+ } while(0)
763
985
 
764
- /* strend hash */
765
- typedef void hash_table_type;
766
- #ifdef _WIN32
767
- # include <windows.h>
768
- typedef ULONG_PTR hash_data_type;
769
- #else
770
- typedef unsigned long hash_data_type;
771
- #endif
986
+ #define BC0_R(name, func) do {\
987
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
988
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
989
+ (UChar* )(name), (UChar* )((name) + len),\
990
+ ONIG_CALLOUT_IN_RETRACTION,\
991
+ onig_builtin_ ## func, 0, 0, 0, 0, 0);\
992
+ if (id < 0) return id;\
993
+ } while(0)
994
+
995
+ #define BC0_B(name, func) do {\
996
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
997
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
998
+ (UChar* )(name), (UChar* )((name) + len),\
999
+ ONIG_CALLOUT_IN_BOTH,\
1000
+ onig_builtin_ ## func, 0, 0, 0, 0, 0);\
1001
+ if (id < 0) return id;\
1002
+ } while(0)
1003
+
1004
+ #define BC_P(name, func, na, ts) do {\
1005
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
1006
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
1007
+ (UChar* )(name), (UChar* )((name) + len),\
1008
+ ONIG_CALLOUT_IN_PROGRESS,\
1009
+ onig_builtin_ ## func, 0, (na), (ts), 0, 0); \
1010
+ if (id < 0) return id;\
1011
+ } while(0)
1012
+
1013
+ #define BC_P_O(name, func, nts, ts, nopts, opts) do {\
1014
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
1015
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
1016
+ (UChar* )(name), (UChar* )((name) + len),\
1017
+ ONIG_CALLOUT_IN_PROGRESS,\
1018
+ onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\
1019
+ if (id < 0) return id;\
1020
+ } while(0)
1021
+
1022
+ #define BC_B(name, func, na, ts) do {\
1023
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
1024
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
1025
+ (UChar* )(name), (UChar* )((name) + len),\
1026
+ ONIG_CALLOUT_IN_BOTH,\
1027
+ onig_builtin_ ## func, 0, (na), (ts), 0, 0);\
1028
+ if (id < 0) return id;\
1029
+ } while(0)
1030
+
1031
+ #define BC_B_O(name, func, nts, ts, nopts, opts) do {\
1032
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
1033
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
1034
+ (UChar* )(name), (UChar* )((name) + len),\
1035
+ ONIG_CALLOUT_IN_BOTH,\
1036
+ onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\
1037
+ if (id < 0) return id;\
1038
+ } while(0)
1039
+
1040
+ #endif /* USE_CALLOUT */
772
1041
 
773
- extern hash_table_type* onig_st_init_strend_table_with_size P_((int size));
774
- extern int onig_st_lookup_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type *value));
775
- extern int onig_st_insert_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type value));
776
1042
 
777
1043
  typedef int (*ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE)(void);
778
1044