@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
@@ -1,8 +1,9 @@
1
- /* A Bison parser, made by GNU Bison 3.0.4. */
1
+ /* A Bison parser, made by GNU Bison 3.8.2. */
2
2
 
3
3
  /* Bison interface for Yacc-like parsers in C
4
4
 
5
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
5
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6
+ Inc.
6
7
 
7
8
  This program is free software: you can redistribute it and/or modify
8
9
  it under the terms of the GNU General Public License as published by
@@ -15,7 +16,7 @@
15
16
  GNU General Public License for more details.
16
17
 
17
18
  You should have received a copy of the GNU General Public License
18
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
19
20
 
20
21
  /* As a special exception, you may create a larger work that contains
21
22
  part or all of the Bison parser skeleton and distribute that work
@@ -30,6 +31,10 @@
30
31
  This special exception was added by the Free Software Foundation in
31
32
  version 2.2 of Bison. */
32
33
 
34
+ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
35
+ especially those whose name start with YY_ or yy_. They are
36
+ private implementation details that can be changed or removed. */
37
+
33
38
  #ifndef YY_YY_SRC_PARSER_H_INCLUDED
34
39
  # define YY_YY_SRC_PARSER_H_INCLUDED
35
40
  /* Debug traces. */
@@ -40,7 +45,7 @@
40
45
  extern int yydebug;
41
46
  #endif
42
47
  /* "%code requires" blocks. */
43
- #line 11 "src/parser.y" /* yacc.c:1909 */
48
+ #line 12 "src/parser.y"
44
49
 
45
50
  #include "locfile.h"
46
51
  struct lexer_param;
@@ -57,120 +62,130 @@ struct lexer_param;
57
62
  } \
58
63
  } while (0)
59
64
 
60
- #line 61 "src/parser.h" /* yacc.c:1909 */
65
+ #line 66 "src/parser.h"
61
66
 
62
- /* Token type. */
67
+ /* Token kinds. */
63
68
  #ifndef YYTOKENTYPE
64
69
  # define YYTOKENTYPE
65
70
  enum yytokentype
66
71
  {
67
- INVALID_CHARACTER = 258,
68
- IDENT = 259,
69
- FIELD = 260,
70
- LITERAL = 261,
71
- FORMAT = 262,
72
- REC = 263,
73
- SETMOD = 264,
74
- EQ = 265,
75
- NEQ = 266,
76
- DEFINEDOR = 267,
77
- AS = 268,
78
- DEF = 269,
79
- MODULE = 270,
80
- IMPORT = 271,
81
- INCLUDE = 272,
82
- IF = 273,
83
- THEN = 274,
84
- ELSE = 275,
85
- ELSE_IF = 276,
86
- REDUCE = 277,
87
- FOREACH = 278,
88
- END = 279,
89
- AND = 280,
90
- OR = 281,
91
- TRY = 282,
92
- CATCH = 283,
93
- LABEL = 284,
94
- BREAK = 285,
95
- LOC = 286,
96
- SETPIPE = 287,
97
- SETPLUS = 288,
98
- SETMINUS = 289,
99
- SETMULT = 290,
100
- SETDIV = 291,
101
- SETDEFINEDOR = 292,
102
- LESSEQ = 293,
103
- GREATEREQ = 294,
104
- ALTERNATION = 295,
105
- QQSTRING_START = 296,
106
- QQSTRING_TEXT = 297,
107
- QQSTRING_INTERP_START = 298,
108
- QQSTRING_INTERP_END = 299,
109
- QQSTRING_END = 300,
110
- FUNCDEF = 301,
111
- NONOPT = 302
72
+ YYEMPTY = -2,
73
+ YYEOF = 0, /* "end of file" */
74
+ YYerror = 256, /* error */
75
+ YYUNDEF = 257, /* "invalid token" */
76
+ INVALID_CHARACTER = 258, /* INVALID_CHARACTER */
77
+ IDENT = 259, /* IDENT */
78
+ FIELD = 260, /* FIELD */
79
+ BINDING = 261, /* BINDING */
80
+ LITERAL = 262, /* LITERAL */
81
+ FORMAT = 263, /* FORMAT */
82
+ REC = 264, /* ".." */
83
+ SETMOD = 265, /* "%=" */
84
+ EQ = 266, /* "==" */
85
+ NEQ = 267, /* "!=" */
86
+ DEFINEDOR = 268, /* "//" */
87
+ AS = 269, /* "as" */
88
+ DEF = 270, /* "def" */
89
+ MODULE = 271, /* "module" */
90
+ IMPORT = 272, /* "import" */
91
+ INCLUDE = 273, /* "include" */
92
+ IF = 274, /* "if" */
93
+ THEN = 275, /* "then" */
94
+ ELSE = 276, /* "else" */
95
+ ELSE_IF = 277, /* "elif" */
96
+ REDUCE = 278, /* "reduce" */
97
+ FOREACH = 279, /* "foreach" */
98
+ END = 280, /* "end" */
99
+ AND = 281, /* "and" */
100
+ OR = 282, /* "or" */
101
+ TRY = 283, /* "try" */
102
+ CATCH = 284, /* "catch" */
103
+ LABEL = 285, /* "label" */
104
+ BREAK = 286, /* "break" */
105
+ LOC = 287, /* "$__loc__" */
106
+ SETPIPE = 288, /* "|=" */
107
+ SETPLUS = 289, /* "+=" */
108
+ SETMINUS = 290, /* "-=" */
109
+ SETMULT = 291, /* "*=" */
110
+ SETDIV = 292, /* "/=" */
111
+ SETDEFINEDOR = 293, /* "//=" */
112
+ LESSEQ = 294, /* "<=" */
113
+ GREATEREQ = 295, /* ">=" */
114
+ ALTERNATION = 296, /* "?//" */
115
+ QQSTRING_START = 297, /* QQSTRING_START */
116
+ QQSTRING_TEXT = 298, /* QQSTRING_TEXT */
117
+ QQSTRING_INTERP_START = 299, /* QQSTRING_INTERP_START */
118
+ QQSTRING_INTERP_END = 300, /* QQSTRING_INTERP_END */
119
+ QQSTRING_END = 301, /* QQSTRING_END */
120
+ FUNCDEF = 302, /* FUNCDEF */
121
+ NONOPT = 303 /* NONOPT */
112
122
  };
123
+ typedef enum yytokentype yytoken_kind_t;
113
124
  #endif
114
- /* Tokens. */
125
+ /* Token kinds. */
126
+ #define YYEMPTY -2
127
+ #define YYEOF 0
128
+ #define YYerror 256
129
+ #define YYUNDEF 257
115
130
  #define INVALID_CHARACTER 258
116
131
  #define IDENT 259
117
132
  #define FIELD 260
118
- #define LITERAL 261
119
- #define FORMAT 262
120
- #define REC 263
121
- #define SETMOD 264
122
- #define EQ 265
123
- #define NEQ 266
124
- #define DEFINEDOR 267
125
- #define AS 268
126
- #define DEF 269
127
- #define MODULE 270
128
- #define IMPORT 271
129
- #define INCLUDE 272
130
- #define IF 273
131
- #define THEN 274
132
- #define ELSE 275
133
- #define ELSE_IF 276
134
- #define REDUCE 277
135
- #define FOREACH 278
136
- #define END 279
137
- #define AND 280
138
- #define OR 281
139
- #define TRY 282
140
- #define CATCH 283
141
- #define LABEL 284
142
- #define BREAK 285
143
- #define LOC 286
144
- #define SETPIPE 287
145
- #define SETPLUS 288
146
- #define SETMINUS 289
147
- #define SETMULT 290
148
- #define SETDIV 291
149
- #define SETDEFINEDOR 292
150
- #define LESSEQ 293
151
- #define GREATEREQ 294
152
- #define ALTERNATION 295
153
- #define QQSTRING_START 296
154
- #define QQSTRING_TEXT 297
155
- #define QQSTRING_INTERP_START 298
156
- #define QQSTRING_INTERP_END 299
157
- #define QQSTRING_END 300
158
- #define FUNCDEF 301
159
- #define NONOPT 302
133
+ #define BINDING 261
134
+ #define LITERAL 262
135
+ #define FORMAT 263
136
+ #define REC 264
137
+ #define SETMOD 265
138
+ #define EQ 266
139
+ #define NEQ 267
140
+ #define DEFINEDOR 268
141
+ #define AS 269
142
+ #define DEF 270
143
+ #define MODULE 271
144
+ #define IMPORT 272
145
+ #define INCLUDE 273
146
+ #define IF 274
147
+ #define THEN 275
148
+ #define ELSE 276
149
+ #define ELSE_IF 277
150
+ #define REDUCE 278
151
+ #define FOREACH 279
152
+ #define END 280
153
+ #define AND 281
154
+ #define OR 282
155
+ #define TRY 283
156
+ #define CATCH 284
157
+ #define LABEL 285
158
+ #define BREAK 286
159
+ #define LOC 287
160
+ #define SETPIPE 288
161
+ #define SETPLUS 289
162
+ #define SETMINUS 290
163
+ #define SETMULT 291
164
+ #define SETDIV 292
165
+ #define SETDEFINEDOR 293
166
+ #define LESSEQ 294
167
+ #define GREATEREQ 295
168
+ #define ALTERNATION 296
169
+ #define QQSTRING_START 297
170
+ #define QQSTRING_TEXT 298
171
+ #define QQSTRING_INTERP_START 299
172
+ #define QQSTRING_INTERP_END 300
173
+ #define QQSTRING_END 301
174
+ #define FUNCDEF 302
175
+ #define NONOPT 303
160
176
 
161
177
  /* Value type. */
162
178
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
163
-
164
179
  union YYSTYPE
165
180
  {
166
- #line 31 "src/parser.y" /* yacc.c:1909 */
181
+ #line 32 "src/parser.y"
167
182
 
168
183
  jv literal;
169
184
  block blk;
170
185
 
171
- #line 172 "src/parser.h" /* yacc.c:1909 */
172
- };
186
+ #line 187 "src/parser.h"
173
187
 
188
+ };
174
189
  typedef union YYSTYPE YYSTYPE;
175
190
  # define YYSTYPE_IS_TRIVIAL 1
176
191
  # define YYSTYPE_IS_DECLARED 1
@@ -192,6 +207,8 @@ struct YYLTYPE
192
207
 
193
208
 
194
209
 
210
+
195
211
  int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr);
196
212
 
213
+
197
214
  #endif /* !YY_YY_SRC_PARSER_H_INCLUDED */
@@ -5,6 +5,7 @@
5
5
  #include <string.h>
6
6
  #include "compile.h"
7
7
  #include "jv_alloc.h"
8
+ #include "builtin.h"
8
9
  #define YYMALLOC jv_mem_alloc
9
10
  #define YYFREE jv_mem_free
10
11
  %}
@@ -26,7 +27,7 @@ struct lexer_param;
26
27
  }
27
28
 
28
29
  %locations
29
- %error-verbose
30
+ %define parse.error verbose
30
31
  %define api.pure
31
32
  %union {
32
33
  jv literal;
@@ -49,6 +50,7 @@ struct lexer_param;
49
50
  %token INVALID_CHARACTER
50
51
  %token <literal> IDENT
51
52
  %token <literal> FIELD
53
+ %token <literal> BINDING
52
54
  %token <literal> LITERAL
53
55
  %token <literal> FORMAT
54
56
  %token REC ".."
@@ -74,7 +76,7 @@ struct lexer_param;
74
76
  %token CATCH "catch"
75
77
  %token LABEL "label"
76
78
  %token BREAK "break"
77
- %token LOC "__loc__"
79
+ %token LOC "$__loc__"
78
80
  %token SETPIPE "|="
79
81
  %token SETPLUS "+="
80
82
  %token SETMINUS "-="
@@ -121,6 +123,7 @@ struct lexer_param;
121
123
  %type <blk> Param Params Arg Args
122
124
  %type <blk> Patterns RepPatterns Pattern ArrayPats ObjPats ObjPat
123
125
  %type <literal> Keyword
126
+ %type <literal> StringStart
124
127
  %{
125
128
  #include "lexer.h"
126
129
  struct lexer_param {
@@ -172,7 +175,7 @@ static jv check_object_key(block k) {
172
175
  char errbuf[15];
173
176
  return jv_string_fmt("Cannot use %s (%s) as object key",
174
177
  jv_kind_name(block_const_kind(k)),
175
- jv_dump_string_trunc(jv_copy(block_const(k)), errbuf, sizeof(errbuf)));
178
+ jv_dump_string_trunc(block_const(k), errbuf, sizeof(errbuf)));
176
179
  }
177
180
  return jv_invalid();
178
181
  }
@@ -200,49 +203,31 @@ static block constant_fold(block a, block b, int op) {
200
203
  if (!block_is_single(a) || !block_is_const(a) ||
201
204
  !block_is_single(b) || !block_is_const(b))
202
205
  return gen_noop();
203
- if (op == '+') {
204
- if (block_const_kind(a) == JV_KIND_NULL) {
205
- block_free(a);
206
- return b;
207
- }
208
- if (block_const_kind(b) == JV_KIND_NULL) {
209
- block_free(b);
210
- return a;
211
- }
212
- }
213
- if (block_const_kind(a) != block_const_kind(b))
214
- return gen_noop();
215
206
 
216
- jv res = jv_invalid();
207
+ jv jv_a = block_const(a);
208
+ block_free(a);
209
+ jv jv_b = block_const(b);
210
+ block_free(b);
217
211
 
218
- if (block_const_kind(a) == JV_KIND_NUMBER) {
219
- double na = jv_number_value(block_const(a));
220
- double nb = jv_number_value(block_const(b));
221
- switch (op) {
222
- case '+': res = jv_number(na + nb); break;
223
- case '-': res = jv_number(na - nb); break;
224
- case '*': res = jv_number(na * nb); break;
225
- case '/': res = jv_number(na / nb); break;
226
- case EQ: res = (na == nb ? jv_true() : jv_false()); break;
227
- case NEQ: res = (na != nb ? jv_true() : jv_false()); break;
228
- case '<': res = (na < nb ? jv_true() : jv_false()); break;
229
- case '>': res = (na > nb ? jv_true() : jv_false()); break;
230
- case LESSEQ: res = (na <= nb ? jv_true() : jv_false()); break;
231
- case GREATEREQ: res = (na >= nb ? jv_true() : jv_false()); break;
232
- default: break;
233
- }
234
- } else if (op == '+' && block_const_kind(a) == JV_KIND_STRING) {
235
- res = jv_string_concat(block_const(a), block_const(b));
236
- } else {
237
- return gen_noop();
212
+ jv res = jv_invalid();
213
+ switch (op) {
214
+ case '+': res = binop_plus(jv_a, jv_b); break;
215
+ case '-': res = binop_minus(jv_a, jv_b); break;
216
+ case '*': res = binop_multiply(jv_a, jv_b); break;
217
+ case '/': res = binop_divide(jv_a, jv_b); break;
218
+ case '%': res = binop_mod(jv_a, jv_b); break;
219
+ case EQ: res = binop_equal(jv_a, jv_b); break;
220
+ case NEQ: res = binop_notequal(jv_a, jv_b); break;
221
+ case '<': res = binop_less(jv_a, jv_b); break;
222
+ case '>': res = binop_greater(jv_a, jv_b); break;
223
+ case LESSEQ: res = binop_lesseq(jv_a, jv_b); break;
224
+ case GREATEREQ: res = binop_greatereq(jv_a, jv_b); break;
238
225
  }
239
226
 
240
- if (jv_get_kind(res) == JV_KIND_INVALID)
241
- return gen_noop();
227
+ if (jv_is_valid(res))
228
+ return gen_const(res);
242
229
 
243
- block_free(a);
244
- block_free(b);
245
- return gen_const(res);
230
+ return gen_error(jv_invalid_get_msg(res));
246
231
  }
247
232
 
248
233
  static block gen_binop(block a, block b, int op) {
@@ -293,6 +278,11 @@ static block gen_update(block object, block val, int optype) {
293
278
  optype)))));
294
279
  }
295
280
 
281
+ static block gen_loc_object(location *loc, struct locfile *locations) {
282
+ return gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
283
+ jv_string("line"), jv_number(locfile_get_line(locations, loc->start) + 1)));
284
+ }
285
+
296
286
  %}
297
287
 
298
288
  %%
@@ -313,6 +303,10 @@ Module:
313
303
  FAIL(@$, "Module metadata must be constant");
314
304
  $$ = gen_noop();
315
305
  block_free($2);
306
+ } else if (block_const_kind($2) != JV_KIND_OBJECT) {
307
+ FAIL(@$, "Module metadata must be an object");
308
+ $$ = gen_noop();
309
+ block_free($2);
316
310
  } else {
317
311
  $$ = gen_module($2);
318
312
  }
@@ -331,7 +325,7 @@ FuncDefs:
331
325
  $$ = gen_noop();
332
326
  } |
333
327
  FuncDef FuncDefs {
334
- $$ = block_bind($1, $2, OP_IS_CALL_PSEUDO);
328
+ $$ = block_join($1, $2);
335
329
  }
336
330
 
337
331
  Exp:
@@ -363,11 +357,9 @@ Term "as" Patterns '|' Exp {
363
357
  } |
364
358
 
365
359
  "try" Exp "catch" Exp {
366
- //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4);
367
- $$ = gen_try($2, gen_try_handler($4));
360
+ $$ = gen_try($2, $4);
368
361
  } |
369
362
  "try" Exp {
370
- //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK));
371
363
  $$ = gen_try($2, gen_op_simple(BACKTRACK));
372
364
  } |
373
365
  "try" Exp "catch" error {
@@ -375,10 +367,10 @@ Term "as" Patterns '|' Exp {
375
367
  $$ = $2;
376
368
  } |
377
369
 
378
- "label" '$' IDENT '|' Exp {
379
- jv v = jv_string_fmt("*label-%s", jv_string_value($3));
380
- $$ = gen_location(@$, locations, gen_label(jv_string_value(v), $5));
381
- jv_free($3);
370
+ "label" BINDING '|' Exp {
371
+ jv v = jv_string_fmt("*label-%s", jv_string_value($2));
372
+ $$ = gen_location(@$, locations, gen_label(jv_string_value(v), $4));
373
+ jv_free($2);
382
374
  jv_free(v);
383
375
  } |
384
376
 
@@ -448,14 +440,10 @@ Exp "*=" Exp {
448
440
 
449
441
  Exp '/' Exp {
450
442
  $$ = gen_binop($1, $3, '/');
451
- if (block_is_const_inf($$))
452
- FAIL(@$, "Division by zero?");
453
443
  } |
454
444
 
455
445
  Exp '%' Exp {
456
446
  $$ = gen_binop($1, $3, '%');
457
- if (block_is_const_inf($$))
458
- FAIL(@$, "Remainder by zero?");
459
447
  } |
460
448
 
461
449
  Exp "/=" Exp {
@@ -515,13 +503,13 @@ ImportWhat Exp ';' {
515
503
  }
516
504
 
517
505
  ImportWhat:
518
- "import" ImportFrom "as" '$' IDENT {
506
+ "import" ImportFrom "as" BINDING {
519
507
  jv v = block_const($2);
520
508
  // XXX Make gen_import take only blocks and the int is_data so we
521
509
  // don't have to free so much stuff here
522
- $$ = gen_import(jv_string_value(v), jv_string_value($5), 1);
510
+ $$ = gen_import(jv_string_value(v), jv_string_value($4), 1);
523
511
  block_free($2);
524
- jv_free($5);
512
+ jv_free($4);
525
513
  jv_free(v);
526
514
  } |
527
515
  "import" ImportFrom "as" IDENT {
@@ -569,28 +557,32 @@ Params ';' Param {
569
557
  }
570
558
 
571
559
  Param:
572
- '$' IDENT {
573
- $$ = gen_param_regular(jv_string_value($2));
574
- jv_free($2);
560
+ BINDING {
561
+ $$ = gen_param_regular(jv_string_value($1));
562
+ jv_free($1);
575
563
  } |
576
-
577
564
  IDENT {
578
565
  $$ = gen_param(jv_string_value($1));
579
566
  jv_free($1);
580
567
  }
581
568
 
582
569
 
583
- String:
584
- QQSTRING_START { $<literal>$ = jv_string("text"); } QQString QQSTRING_END {
585
- $$ = $3;
586
- jv_free($<literal>2);
570
+ StringStart:
571
+ FORMAT QQSTRING_START {
572
+ $$ = $1;
587
573
  } |
588
- FORMAT QQSTRING_START { $<literal>$ = $1; } QQString QQSTRING_END {
589
- $$ = $4;
590
- jv_free($<literal>3);
574
+ QQSTRING_START {
575
+ $$ = jv_string("text");
591
576
  }
592
577
 
593
578
 
579
+ String:
580
+ StringStart QQString QQSTRING_END {
581
+ $$ = $2;
582
+ jv_free($1);
583
+ };
584
+
585
+
594
586
  QQString:
595
587
  %empty {
596
588
  $$ = gen_const(jv_string(""));
@@ -609,6 +601,9 @@ ElseBody:
609
601
  } |
610
602
  "else" Exp "end" {
611
603
  $$ = $2;
604
+ } |
605
+ "end" {
606
+ $$ = gen_noop();
612
607
  }
613
608
 
614
609
  ExpD:
@@ -630,13 +625,13 @@ Term:
630
625
  REC {
631
626
  $$ = gen_call("recurse", gen_noop());
632
627
  } |
633
- BREAK '$' IDENT {
634
- jv v = jv_string_fmt("*label-%s", jv_string_value($3)); // impossible symbol
628
+ BREAK BINDING {
629
+ jv v = jv_string_fmt("*label-%s", jv_string_value($2)); // impossible symbol
635
630
  $$ = gen_location(@$, locations,
636
631
  BLOCK(gen_op_unbound(LOADV, jv_string_value(v)),
637
632
  gen_call("error", gen_noop())));
638
633
  jv_free(v);
639
- jv_free($3);
634
+ jv_free($2);
640
635
  } |
641
636
  BREAK error {
642
637
  FAIL(@$, "break requires a label to break to");
@@ -682,12 +677,24 @@ Term '[' Exp ']' '?' {
682
677
  Term '[' Exp ']' %prec NONOPT {
683
678
  $$ = gen_index($1, $3);
684
679
  } |
680
+ Term '.' '[' Exp ']' '?' {
681
+ $$ = gen_index_opt($1, $4);
682
+ } |
683
+ Term '.' '[' Exp ']' %prec NONOPT {
684
+ $$ = gen_index($1, $4);
685
+ } |
685
686
  Term '[' ']' '?' {
686
687
  $$ = block_join($1, gen_op_simple(EACH_OPT));
687
688
  } |
688
689
  Term '[' ']' %prec NONOPT {
689
690
  $$ = block_join($1, gen_op_simple(EACH));
690
691
  } |
692
+ Term '.' '[' ']' '?' {
693
+ $$ = block_join($1, gen_op_simple(EACH_OPT));
694
+ } |
695
+ Term '.' '[' ']' %prec NONOPT {
696
+ $$ = block_join($1, gen_op_simple(EACH));
697
+ } |
691
698
  Term '[' Exp ':' Exp ']' '?' {
692
699
  $$ = gen_slice_index($1, $3, $5, INDEX_OPT);
693
700
  } |
@@ -731,13 +738,31 @@ FORMAT {
731
738
  else
732
739
  $$ = BLOCK(gen_subexp(gen_const(jv_object())), $2, gen_op_simple(POP));
733
740
  } |
734
- '$' LOC {
735
- $$ = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
736
- jv_string("line"), jv_number(locfile_get_line(locations, @$.start) + 1)));
741
+ /*
742
+ * This `$$$$varname` hack is strictly private to jq builtins. DO NOT USE!!
743
+ *
744
+ * This is used in `_modify`, in src/builtin.jq, to avoid holding on to a
745
+ * reference to `.`.
746
+ *
747
+ * We could just have the compiler emit bytecode for `_modify` so it can use
748
+ * LOADVN w/o needing jq syntax for LOADVN.
749
+ *
750
+ * This syntax, `$$$$varname`, violates referential transparency: it has
751
+ * side-effects that are surprising.
752
+ *
753
+ * DO NOT USE!! I will break your jq code if you do use this outside
754
+ * src/builtin.jq.
755
+ */
756
+ '$' '$' '$' BINDING {
757
+ $$ = gen_location(@$, locations, gen_op_unbound(LOADVN, jv_string_value($4)));
758
+ jv_free($4);
737
759
  } |
738
- '$' IDENT {
739
- $$ = gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($2)));
740
- jv_free($2);
760
+ BINDING {
761
+ $$ = gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($1)));
762
+ jv_free($1);
763
+ } |
764
+ "$__loc__" {
765
+ $$ = gen_loc_object(&@$, locations);
741
766
  } |
742
767
  IDENT {
743
768
  const char *s = jv_string_value($1);
@@ -791,9 +816,9 @@ Pattern {
791
816
  }
792
817
 
793
818
  Pattern:
794
- '$' IDENT {
795
- $$ = gen_op_unbound(STOREV, jv_string_value($2));
796
- jv_free($2);
819
+ BINDING {
820
+ $$ = gen_op_unbound(STOREV, jv_string_value($1));
821
+ jv_free($1);
797
822
  } |
798
823
  '[' ArrayPats ']' {
799
824
  $$ = BLOCK($2, gen_op_simple(POP));
@@ -819,11 +844,11 @@ ObjPats ',' ObjPat {
819
844
  }
820
845
 
821
846
  ObjPat:
822
- '$' IDENT {
823
- $$ = gen_object_matcher(gen_const($2), gen_op_unbound(STOREV, jv_string_value($2)));
847
+ BINDING {
848
+ $$ = gen_object_matcher(gen_const($1), gen_op_unbound(STOREV, jv_string_value($1)));
824
849
  } |
825
- '$' IDENT ':' Pattern {
826
- $$ = gen_object_matcher(gen_const($2), BLOCK(gen_op_simple(DUP), gen_op_unbound(STOREV, jv_string_value($2)), $4));
850
+ BINDING ':' Pattern {
851
+ $$ = gen_object_matcher(gen_const($1), BLOCK(gen_op_simple(DUP), gen_op_unbound(STOREV, jv_string_value($1)), $3));
827
852
  } |
828
853
  IDENT ':' Pattern {
829
854
  $$ = gen_object_matcher(gen_const($1), $3);
@@ -901,9 +926,6 @@ Keyword:
901
926
  } |
902
927
  "break" {
903
928
  $$ = jv_string("break");
904
- } |
905
- "__loc__" {
906
- $$ = jv_string("__loc__");
907
929
  }
908
930
 
909
931
  MkDict:
@@ -928,14 +950,27 @@ IDENT ':' ExpD {
928
950
  $$ = gen_dictpair($1, BLOCK(gen_op_simple(POP), gen_op_simple(DUP2),
929
951
  gen_op_simple(DUP2), gen_op_simple(INDEX)));
930
952
  }
931
- | '$' IDENT {
932
- $$ = gen_dictpair(gen_const($2),
933
- gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($2))));
953
+ | BINDING ':' ExpD {
954
+ $$ = gen_dictpair(gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($1))),
955
+ $3);
956
+ jv_free($1);
957
+ }
958
+ | BINDING {
959
+ $$ = gen_dictpair(gen_const($1),
960
+ gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($1))));
934
961
  }
935
962
  | IDENT {
936
963
  $$ = gen_dictpair(gen_const(jv_copy($1)),
937
964
  gen_index(gen_noop(), gen_const($1)));
938
965
  }
966
+ | "$__loc__" {
967
+ $$ = gen_dictpair(gen_const(jv_string("__loc__")),
968
+ gen_loc_object(&@$, locations));
969
+ }
970
+ | Keyword {
971
+ $$ = gen_dictpair(gen_const(jv_copy($1)),
972
+ gen_index(gen_noop(), gen_const($1)));
973
+ }
939
974
  | '(' Exp ')' ':' ExpD {
940
975
  jv msg = check_object_key($2);
941
976
  if (jv_is_valid(msg)) {