@port-labs/jq-node-bindings 1.0.4 → 1.1.0-dev

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 (352) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/configure +6 -5
  3. package/deps/jq/.claude/settings.local.json +7 -0
  4. package/deps/jq/.gitattributes +1 -3
  5. package/deps/jq/AUTHORS +55 -1
  6. package/deps/jq/COPYING +40 -0
  7. package/deps/jq/Makefile.am +40 -36
  8. package/deps/jq/NEWS.md +277 -2
  9. package/deps/jq/README.md +23 -5
  10. package/deps/jq/compile-ios.sh +1 -1
  11. package/deps/jq/config/m4/check-math-func.m4 +2 -2
  12. package/deps/jq/config/m4/find-func-no-libs2.m4 +3 -3
  13. package/deps/jq/configure.ac +10 -18
  14. package/deps/jq/docs/Pipfile.lock +368 -313
  15. package/deps/jq/docs/README.md +3 -4
  16. package/deps/jq/docs/build_manpage.py +1 -1
  17. package/deps/jq/docs/build_mantests.py +1 -1
  18. package/deps/jq/docs/build_website.py +1 -8
  19. package/deps/jq/docs/content/download/default.yml +49 -9
  20. package/deps/jq/docs/content/index.yml +9 -0
  21. package/deps/jq/docs/content/manual/{manual.yml → dev/manual.yml} +218 -61
  22. package/deps/jq/docs/content/manual/v1.3/manual.yml +0 -5
  23. package/deps/jq/docs/content/manual/v1.4/manual.yml +0 -5
  24. package/deps/jq/docs/content/manual/v1.5/manual.yml +3 -8
  25. package/deps/jq/docs/content/manual/v1.6/manual.yml +3 -8
  26. package/deps/jq/docs/content/manual/v1.7/manual.yml +499 -500
  27. package/deps/jq/docs/content/manual/v1.8/manual.yml +3858 -0
  28. package/deps/jq/docs/content/tutorial/default.yml +3 -3
  29. package/deps/jq/docs/manual_schema.yml +0 -3
  30. package/deps/jq/docs/public/CNAME +1 -0
  31. package/deps/jq/docs/templates/index.html.j2 +10 -10
  32. package/deps/jq/docs/templates/manual.html.j2 +14 -3
  33. package/deps/jq/docs/templates/shared/_head.html.j2 +8 -3
  34. package/deps/jq/docs/templates/shared/_navbar.html.j2 +4 -4
  35. package/deps/jq/jq.1.prebuilt +219 -44
  36. package/deps/jq/jq.spec +2 -2
  37. package/deps/jq/libjq.pc.in +1 -1
  38. package/deps/jq/scripts/version +1 -1
  39. package/deps/jq/sig/v1.7.1/jq-1.7.1.tar.gz.asc +16 -0
  40. package/deps/jq/sig/v1.7.1/jq-1.7.1.zip.asc +16 -0
  41. package/deps/jq/sig/v1.7.1/jq-linux-amd64.asc +16 -0
  42. package/deps/jq/sig/v1.7.1/jq-linux-arm64.asc +16 -0
  43. package/deps/jq/sig/v1.7.1/jq-linux-armel.asc +16 -0
  44. package/deps/jq/sig/v1.7.1/jq-linux-armhf.asc +16 -0
  45. package/deps/jq/sig/v1.7.1/jq-linux-i386.asc +16 -0
  46. package/deps/jq/sig/v1.7.1/jq-linux-mips.asc +16 -0
  47. package/deps/jq/sig/v1.7.1/jq-linux-mips64.asc +16 -0
  48. package/deps/jq/sig/v1.7.1/jq-linux-mips64el.asc +16 -0
  49. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6.asc +16 -0
  50. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6el.asc +16 -0
  51. package/deps/jq/sig/v1.7.1/jq-linux-mipsel.asc +16 -0
  52. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6.asc +16 -0
  53. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6el.asc +16 -0
  54. package/deps/jq/sig/v1.7.1/jq-linux-powerpc.asc +16 -0
  55. package/deps/jq/sig/v1.7.1/jq-linux-ppc64el.asc +16 -0
  56. package/deps/jq/sig/v1.7.1/jq-linux-riscv64.asc +16 -0
  57. package/deps/jq/sig/v1.7.1/jq-linux-s390x.asc +16 -0
  58. package/deps/jq/sig/v1.7.1/jq-linux64.asc +16 -0
  59. package/deps/jq/sig/v1.7.1/jq-macos-amd64.asc +16 -0
  60. package/deps/jq/sig/v1.7.1/jq-macos-arm64.asc +16 -0
  61. package/deps/jq/sig/v1.7.1/jq-osx-amd64.asc +16 -0
  62. package/deps/jq/sig/v1.7.1/jq-win64.exe.asc +16 -0
  63. package/deps/jq/sig/v1.7.1/jq-windows-amd64.exe.asc +16 -0
  64. package/deps/jq/sig/v1.7.1/jq-windows-i386.exe.asc +16 -0
  65. package/deps/jq/sig/v1.7.1/sha256sum.txt +26 -0
  66. package/deps/jq/sig/v1.8.0/jq-1.8.0.tar.gz.asc +16 -0
  67. package/deps/jq/sig/v1.8.0/jq-1.8.0.zip.asc +16 -0
  68. package/deps/jq/sig/v1.8.0/jq-linux-amd64.asc +16 -0
  69. package/deps/jq/sig/v1.8.0/jq-linux-arm64.asc +16 -0
  70. package/deps/jq/sig/v1.8.0/jq-linux-armel.asc +16 -0
  71. package/deps/jq/sig/v1.8.0/jq-linux-armhf.asc +16 -0
  72. package/deps/jq/sig/v1.8.0/jq-linux-i386.asc +16 -0
  73. package/deps/jq/sig/v1.8.0/jq-linux-mips.asc +16 -0
  74. package/deps/jq/sig/v1.8.0/jq-linux-mips64.asc +16 -0
  75. package/deps/jq/sig/v1.8.0/jq-linux-mips64el.asc +16 -0
  76. package/deps/jq/sig/v1.8.0/jq-linux-mips64r6.asc +16 -0
  77. package/deps/jq/sig/v1.8.0/jq-linux-mips64r6el.asc +16 -0
  78. package/deps/jq/sig/v1.8.0/jq-linux-mipsel.asc +16 -0
  79. package/deps/jq/sig/v1.8.0/jq-linux-mipsr6.asc +16 -0
  80. package/deps/jq/sig/v1.8.0/jq-linux-mipsr6el.asc +16 -0
  81. package/deps/jq/sig/v1.8.0/jq-linux-powerpc.asc +16 -0
  82. package/deps/jq/sig/v1.8.0/jq-linux-ppc64el.asc +16 -0
  83. package/deps/jq/sig/v1.8.0/jq-linux-riscv64.asc +16 -0
  84. package/deps/jq/sig/v1.8.0/jq-linux-s390x.asc +16 -0
  85. package/deps/jq/sig/v1.8.0/jq-linux64.asc +16 -0
  86. package/deps/jq/sig/v1.8.0/jq-macos-amd64.asc +16 -0
  87. package/deps/jq/sig/v1.8.0/jq-macos-arm64.asc +16 -0
  88. package/deps/jq/sig/v1.8.0/jq-osx-amd64.asc +16 -0
  89. package/deps/jq/sig/v1.8.0/jq-win64.exe.asc +16 -0
  90. package/deps/jq/sig/v1.8.0/jq-windows-amd64.exe.asc +16 -0
  91. package/deps/jq/sig/v1.8.0/jq-windows-i386.exe.asc +16 -0
  92. package/deps/jq/sig/v1.8.0/sha256sum.txt +26 -0
  93. package/deps/jq/src/builtin.c +446 -271
  94. package/deps/jq/src/builtin.jq +25 -60
  95. package/deps/jq/src/bytecode.h +8 -3
  96. package/deps/jq/src/compile.c +22 -43
  97. package/deps/jq/src/compile.h +1 -1
  98. package/deps/jq/src/execute.c +20 -25
  99. package/deps/jq/src/jq_test.c +113 -44
  100. package/deps/jq/src/jv.c +134 -42
  101. package/deps/jq/src/jv.h +10 -3
  102. package/deps/jq/src/jv_alloc.c +8 -5
  103. package/deps/jq/src/jv_alloc.h +0 -1
  104. package/deps/jq/src/jv_aux.c +41 -8
  105. package/deps/jq/src/jv_dtoa.c +4 -12
  106. package/deps/jq/src/jv_dtoa_tsd.c +5 -4
  107. package/deps/jq/src/jv_dtoa_tsd.h +1 -1
  108. package/deps/jq/src/jv_parse.c +5 -3
  109. package/deps/jq/src/jv_print.c +87 -65
  110. package/deps/jq/src/jv_unicode.c +18 -0
  111. package/deps/jq/src/jv_unicode.h +2 -0
  112. package/deps/jq/src/lexer.c +303 -278
  113. package/deps/jq/src/lexer.h +5 -4
  114. package/deps/jq/src/lexer.l +8 -2
  115. package/deps/jq/src/libm.h +15 -5
  116. package/deps/jq/src/linker.c +6 -4
  117. package/deps/jq/src/locfile.c +12 -12
  118. package/deps/jq/src/main.c +204 -270
  119. package/deps/jq/src/parser.c +1105 -1273
  120. package/deps/jq/src/parser.y +149 -181
  121. package/deps/jq/src/util.c +46 -48
  122. package/deps/jq/src/util.h +1 -1
  123. package/deps/jq/tests/base64.test +12 -0
  124. package/deps/jq/tests/jq.test +429 -37
  125. package/deps/jq/tests/jq_fuzz_load_file.c +1 -0
  126. package/deps/jq/tests/man.test +46 -13
  127. package/deps/jq/tests/manonig.test +13 -0
  128. package/deps/jq/tests/onig.test +40 -2
  129. package/deps/jq/tests/optional.test +4 -12
  130. package/deps/jq/tests/setup +5 -1
  131. package/deps/jq/tests/shtest +358 -130
  132. package/deps/jq/tests/uri.test +38 -0
  133. package/deps/jq/tests/uritest +5 -0
  134. package/deps/jq/{src → vendor}/decNumber/decBasic.c +1 -1
  135. package/deps/jq/{src → vendor}/decNumber/decCommon.c +1 -1
  136. package/deps/jq/{src → vendor}/decNumber/decNumber.c +4 -4
  137. package/deps/jq/{modules → vendor}/oniguruma/CMakeLists.txt +5 -3
  138. package/deps/jq/{modules → vendor}/oniguruma/HISTORY +45 -7
  139. package/deps/jq/{modules → vendor}/oniguruma/Makefile.am +1 -1
  140. package/deps/jq/{modules → vendor}/oniguruma/README.md +10 -23
  141. package/deps/jq/{modules → vendor}/oniguruma/compile +29 -13
  142. package/deps/jq/{modules → vendor}/oniguruma/config.guess +91 -27
  143. package/deps/jq/{modules → vendor}/oniguruma/config.sub +716 -242
  144. package/deps/jq/{modules → vendor}/oniguruma/configure.ac +2 -2
  145. package/deps/jq/{modules → vendor}/oniguruma/depcomp +10 -9
  146. package/deps/jq/{modules → vendor}/oniguruma/doc/API +3 -1
  147. package/deps/jq/{modules → vendor}/oniguruma/doc/API.ja +3 -1
  148. package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.BUILTIN +10 -1
  149. package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.BUILTIN.ja +9 -1
  150. package/deps/jq/{modules → vendor}/oniguruma/doc/RE +12 -13
  151. package/deps/jq/{modules → vendor}/oniguruma/doc/RE.ja +12 -13
  152. package/deps/jq/{modules → vendor}/oniguruma/doc/SYNTAX.md +202 -167
  153. package/deps/jq/{modules → vendor}/oniguruma/doc/UNICODE_PROPERTIES +33 -1
  154. package/deps/jq/vendor/oniguruma/doc/onig_syn_md.c +667 -0
  155. package/deps/jq/{modules → vendor}/oniguruma/harnesses/base.c +1 -1
  156. package/deps/jq/{modules → vendor}/oniguruma/install-sh +9 -9
  157. package/deps/jq/{modules → vendor}/oniguruma/missing +50 -29
  158. package/deps/jq/{modules → vendor}/oniguruma/sample/callback_each_match.c +1 -3
  159. package/deps/jq/vendor/oniguruma/sbom.cdx.json +44 -0
  160. package/deps/jq/{modules → vendor}/oniguruma/src/ascii.c +4 -1
  161. package/deps/jq/{modules → vendor}/oniguruma/src/gperf_fold_key_conv.py +4 -4
  162. package/deps/jq/{modules → vendor}/oniguruma/src/gperf_unfold_key_conv.py +4 -4
  163. package/deps/jq/vendor/oniguruma/src/make_unicode_egcb.sh +7 -0
  164. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_egcb_data.py +20 -19
  165. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_fold.sh +5 -5
  166. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_fold_data.py +37 -37
  167. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_property.sh +2 -2
  168. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_property_data.py +66 -65
  169. package/deps/jq/vendor/oniguruma/src/make_unicode_wb.sh +7 -0
  170. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_wb_data.py +20 -19
  171. package/deps/jq/{modules → vendor}/oniguruma/src/oniguruma.h +6 -3
  172. package/deps/jq/{modules → vendor}/oniguruma/src/regcomp.c +14 -6
  173. package/deps/jq/{modules → vendor}/oniguruma/src/regerror.c +2 -2
  174. package/deps/jq/{modules → vendor}/oniguruma/src/regexec.c +85 -14
  175. package/deps/jq/{modules → vendor}/oniguruma/src/regint.h +17 -4
  176. package/deps/jq/{modules → vendor}/oniguruma/src/regparse.c +115 -27
  177. package/deps/jq/{modules → vendor}/oniguruma/src/regsyntax.c +10 -7
  178. package/deps/jq/{modules → vendor}/oniguruma/src/st.c +49 -75
  179. package/deps/jq/{modules → vendor}/oniguruma/src/st.h +3 -10
  180. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_egcb_data.c +54 -49
  181. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold1_key.c +1567 -1507
  182. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold2_key.c +1 -1
  183. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold3_key.c +1 -1
  184. package/deps/jq/vendor/oniguruma/src/unicode_fold_data.c +1619 -0
  185. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_property_data.c +5520 -4178
  186. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_property_data_posix.c +239 -83
  187. package/deps/jq/vendor/oniguruma/src/unicode_unfold_key.c +3497 -0
  188. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_wb_data.c +51 -19
  189. package/deps/jq/{modules → vendor}/oniguruma/src/utf16_be.c +3 -2
  190. package/deps/jq/{modules → vendor}/oniguruma/src/utf16_le.c +3 -2
  191. package/deps/jq/{modules → vendor}/oniguruma/test/test_back.c +3 -3
  192. package/deps/jq/{modules → vendor}/oniguruma/test/test_options.c +2 -2
  193. package/deps/jq/{modules → vendor}/oniguruma/test/test_syntax.c +54 -2
  194. package/deps/jq/{modules → vendor}/oniguruma/test/test_utf8.c +19 -5
  195. package/deps/jq/{modules → vendor}/oniguruma/test/testc.c +1 -1
  196. package/deps/jq/{modules → vendor}/oniguruma/test/testp.c +1 -1
  197. package/deps/jq/{modules → vendor}/oniguruma/test-driver +13 -6
  198. package/deps/jq/{modules → vendor}/oniguruma/windows/CMakeLists.txt +1 -1
  199. package/index.d.ts +2 -1
  200. package/lib/index.js +1 -0
  201. package/lib/jq.js +2 -1
  202. package/package.json +4 -3
  203. package/test/santiy-async.test.js +4 -4
  204. package/test/santiy.test.js +4 -4
  205. package/test/template.test.js +6 -6
  206. package/deps/jq/modules/oniguruma/src/make_unicode_egcb.sh +0 -7
  207. package/deps/jq/modules/oniguruma/src/make_unicode_wb.sh +0 -7
  208. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +0 -1592
  209. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +0 -3394
  210. package/deps/jq/scripts/update-website +0 -30
  211. /package/deps/jq/{src → vendor}/decNumber/ICU-license.html +0 -0
  212. /package/deps/jq/{src → vendor}/decNumber/decContext.c +0 -0
  213. /package/deps/jq/{src → vendor}/decNumber/decContext.h +0 -0
  214. /package/deps/jq/{src → vendor}/decNumber/decDPD.h +0 -0
  215. /package/deps/jq/{src → vendor}/decNumber/decDouble.c +0 -0
  216. /package/deps/jq/{src → vendor}/decNumber/decDouble.h +0 -0
  217. /package/deps/jq/{src → vendor}/decNumber/decNumber.h +0 -0
  218. /package/deps/jq/{src → vendor}/decNumber/decNumberLocal.h +0 -0
  219. /package/deps/jq/{src → vendor}/decNumber/decPacked.c +0 -0
  220. /package/deps/jq/{src → vendor}/decNumber/decPacked.h +0 -0
  221. /package/deps/jq/{src → vendor}/decNumber/decQuad.c +0 -0
  222. /package/deps/jq/{src → vendor}/decNumber/decQuad.h +0 -0
  223. /package/deps/jq/{src → vendor}/decNumber/decSingle.c +0 -0
  224. /package/deps/jq/{src → vendor}/decNumber/decSingle.h +0 -0
  225. /package/deps/jq/{src → vendor}/decNumber/decimal128.c +0 -0
  226. /package/deps/jq/{src → vendor}/decNumber/decimal128.h +0 -0
  227. /package/deps/jq/{src → vendor}/decNumber/decimal32.c +0 -0
  228. /package/deps/jq/{src → vendor}/decNumber/decimal32.h +0 -0
  229. /package/deps/jq/{src → vendor}/decNumber/decimal64.c +0 -0
  230. /package/deps/jq/{src → vendor}/decNumber/decimal64.h +0 -0
  231. /package/deps/jq/{src → vendor}/decNumber/decnumber.pdf +0 -0
  232. /package/deps/jq/{src → vendor}/decNumber/example1.c +0 -0
  233. /package/deps/jq/{src → vendor}/decNumber/example2.c +0 -0
  234. /package/deps/jq/{src → vendor}/decNumber/example3.c +0 -0
  235. /package/deps/jq/{src → vendor}/decNumber/example4.c +0 -0
  236. /package/deps/jq/{src → vendor}/decNumber/example5.c +0 -0
  237. /package/deps/jq/{src → vendor}/decNumber/example6.c +0 -0
  238. /package/deps/jq/{src → vendor}/decNumber/example7.c +0 -0
  239. /package/deps/jq/{src → vendor}/decNumber/example8.c +0 -0
  240. /package/deps/jq/{src → vendor}/decNumber/readme.txt +0 -0
  241. /package/deps/jq/{modules → vendor}/oniguruma/.travis.yml +0 -0
  242. /package/deps/jq/{modules → vendor}/oniguruma/AUTHORS +0 -0
  243. /package/deps/jq/{modules → vendor}/oniguruma/COPYING +0 -0
  244. /package/deps/jq/{modules → vendor}/oniguruma/ChangeLog +0 -0
  245. /package/deps/jq/{modules → vendor}/oniguruma/NEWS +0 -0
  246. /package/deps/jq/{modules → vendor}/oniguruma/README +0 -0
  247. /package/deps/jq/{modules → vendor}/oniguruma/README_japanese +0 -0
  248. /package/deps/jq/{modules → vendor}/oniguruma/autogen.sh +0 -0
  249. /package/deps/jq/{modules → vendor}/oniguruma/cmake/Config.cmake.in +0 -0
  250. /package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.API +0 -0
  251. /package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.API.ja +0 -0
  252. /package/deps/jq/{modules → vendor}/oniguruma/doc/FAQ +0 -0
  253. /package/deps/jq/{modules → vendor}/oniguruma/doc/FAQ.ja +0 -0
  254. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/ascii_compatible.dict +0 -0
  255. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/deluxe.c +0 -0
  256. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/dict_conv.py +0 -0
  257. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/fuzzer.options +0 -0
  258. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/libfuzzer-onig.cpp +0 -0
  259. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/regset.c +0 -0
  260. /package/deps/jq/{modules → vendor}/oniguruma/index.html +0 -0
  261. /package/deps/jq/{modules → vendor}/oniguruma/index_ja.html +0 -0
  262. /package/deps/jq/{modules → vendor}/oniguruma/m4/.whatever +0 -0
  263. /package/deps/jq/{modules → vendor}/oniguruma/make_win.bat +0 -0
  264. /package/deps/jq/{modules → vendor}/oniguruma/make_win32.bat +0 -0
  265. /package/deps/jq/{modules → vendor}/oniguruma/make_win64.bat +0 -0
  266. /package/deps/jq/{modules → vendor}/oniguruma/onig-config.cmake.in +0 -0
  267. /package/deps/jq/{modules → vendor}/oniguruma/onig-config.in +0 -0
  268. /package/deps/jq/{modules → vendor}/oniguruma/oniguruma.pc.cmake.in +0 -0
  269. /package/deps/jq/{modules → vendor}/oniguruma/oniguruma.pc.in +0 -0
  270. /package/deps/jq/{modules → vendor}/oniguruma/sample/CMakeLists.txt +0 -0
  271. /package/deps/jq/{modules → vendor}/oniguruma/sample/Makefile.am +0 -0
  272. /package/deps/jq/{modules → vendor}/oniguruma/sample/bug_fix.c +0 -0
  273. /package/deps/jq/{modules → vendor}/oniguruma/sample/callout.c +0 -0
  274. /package/deps/jq/{modules → vendor}/oniguruma/sample/count.c +0 -0
  275. /package/deps/jq/{modules → vendor}/oniguruma/sample/crnl.c +0 -0
  276. /package/deps/jq/{modules → vendor}/oniguruma/sample/echo.c +0 -0
  277. /package/deps/jq/{modules → vendor}/oniguruma/sample/encode.c +0 -0
  278. /package/deps/jq/{modules → vendor}/oniguruma/sample/listcap.c +0 -0
  279. /package/deps/jq/{modules → vendor}/oniguruma/sample/names.c +0 -0
  280. /package/deps/jq/{modules → vendor}/oniguruma/sample/posix.c +0 -0
  281. /package/deps/jq/{modules → vendor}/oniguruma/sample/regset.c +0 -0
  282. /package/deps/jq/{modules → vendor}/oniguruma/sample/scan.c +0 -0
  283. /package/deps/jq/{modules → vendor}/oniguruma/sample/simple.c +0 -0
  284. /package/deps/jq/{modules → vendor}/oniguruma/sample/sql.c +0 -0
  285. /package/deps/jq/{modules → vendor}/oniguruma/sample/syntax.c +0 -0
  286. /package/deps/jq/{modules → vendor}/oniguruma/sample/user_property.c +0 -0
  287. /package/deps/jq/{modules → vendor}/oniguruma/src/Makefile.am +0 -0
  288. /package/deps/jq/{modules → vendor}/oniguruma/src/Makefile.windows +0 -0
  289. /package/deps/jq/{modules → vendor}/oniguruma/src/big5.c +0 -0
  290. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.cmake.in +0 -0
  291. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.win32 +0 -0
  292. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.win64 +0 -0
  293. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.windows.in +0 -0
  294. /package/deps/jq/{modules → vendor}/oniguruma/src/cp1251.c +0 -0
  295. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp.c +0 -0
  296. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp_prop.c +0 -0
  297. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp_prop.gperf +0 -0
  298. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_kr.c +0 -0
  299. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_tw.c +0 -0
  300. /package/deps/jq/{modules → vendor}/oniguruma/src/gb18030.c +0 -0
  301. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_1.c +0 -0
  302. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_10.c +0 -0
  303. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_11.c +0 -0
  304. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_13.c +0 -0
  305. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_14.c +0 -0
  306. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_15.c +0 -0
  307. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_16.c +0 -0
  308. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_2.c +0 -0
  309. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_3.c +0 -0
  310. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_4.c +0 -0
  311. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_5.c +0 -0
  312. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_6.c +0 -0
  313. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_7.c +0 -0
  314. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_8.c +0 -0
  315. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_9.c +0 -0
  316. /package/deps/jq/{modules → vendor}/oniguruma/src/koi8.c +0 -0
  317. /package/deps/jq/{modules → vendor}/oniguruma/src/koi8_r.c +0 -0
  318. /package/deps/jq/{modules → vendor}/oniguruma/src/make_property.sh +0 -0
  319. /package/deps/jq/{modules → vendor}/oniguruma/src/mktable.c +0 -0
  320. /package/deps/jq/{modules → vendor}/oniguruma/src/onig_init.c +0 -0
  321. /package/deps/jq/{modules → vendor}/oniguruma/src/oniggnu.h +0 -0
  322. /package/deps/jq/{modules → vendor}/oniguruma/src/onigposix.h +0 -0
  323. /package/deps/jq/{modules → vendor}/oniguruma/src/regenc.c +0 -0
  324. /package/deps/jq/{modules → vendor}/oniguruma/src/regenc.h +0 -0
  325. /package/deps/jq/{modules → vendor}/oniguruma/src/regext.c +0 -0
  326. /package/deps/jq/{modules → vendor}/oniguruma/src/reggnu.c +0 -0
  327. /package/deps/jq/{modules → vendor}/oniguruma/src/regparse.h +0 -0
  328. /package/deps/jq/{modules → vendor}/oniguruma/src/regposerr.c +0 -0
  329. /package/deps/jq/{modules → vendor}/oniguruma/src/regposix.c +0 -0
  330. /package/deps/jq/{modules → vendor}/oniguruma/src/regtrav.c +0 -0
  331. /package/deps/jq/{modules → vendor}/oniguruma/src/regversion.c +0 -0
  332. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis.c +0 -0
  333. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis_prop.c +0 -0
  334. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis_prop.gperf +0 -0
  335. /package/deps/jq/{modules → vendor}/oniguruma/src/unicode.c +0 -0
  336. /package/deps/jq/{modules → vendor}/oniguruma/src/utf32_be.c +0 -0
  337. /package/deps/jq/{modules → vendor}/oniguruma/src/utf32_le.c +0 -0
  338. /package/deps/jq/{modules → vendor}/oniguruma/src/utf8.c +0 -0
  339. /package/deps/jq/{modules → vendor}/oniguruma/test/CMakeLists.txt +0 -0
  340. /package/deps/jq/{modules → vendor}/oniguruma/test/Makefile.am +0 -0
  341. /package/deps/jq/{modules → vendor}/oniguruma/test/test.sh +0 -0
  342. /package/deps/jq/{modules → vendor}/oniguruma/test/test_regset.c +0 -0
  343. /package/deps/jq/{modules → vendor}/oniguruma/test/testu.c +0 -0
  344. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/stub.c +0 -0
  345. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_back.config +0 -0
  346. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_regset.config +0 -0
  347. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_syntax.config +0 -0
  348. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_utf8.config +0 -0
  349. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/testc.config +0 -0
  350. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/testu.config +0 -0
  351. /package/deps/jq/{modules → vendor}/oniguruma/tis.config +0 -0
  352. /package/deps/jq/{modules → vendor}/oniguruma/windows/testc.c +0 -0
@@ -345,12 +345,12 @@ enum yysymbol_kind_t
345
345
  YYSYMBOL_57_ = 57, /* '%' */
346
346
  YYSYMBOL_NONOPT = 58, /* NONOPT */
347
347
  YYSYMBOL_59_ = 59, /* '?' */
348
- YYSYMBOL_60_ = 60, /* ';' */
349
- YYSYMBOL_61_ = 61, /* '(' */
350
- YYSYMBOL_62_ = 62, /* ')' */
348
+ YYSYMBOL_60_ = 60, /* '.' */
349
+ YYSYMBOL_61_ = 61, /* '[' */
350
+ YYSYMBOL_62_ = 62, /* ';' */
351
351
  YYSYMBOL_63_ = 63, /* ':' */
352
- YYSYMBOL_64_ = 64, /* '.' */
353
- YYSYMBOL_65_ = 65, /* '[' */
352
+ YYSYMBOL_64_ = 64, /* '(' */
353
+ YYSYMBOL_65_ = 65, /* ')' */
354
354
  YYSYMBOL_66_ = 66, /* ']' */
355
355
  YYSYMBOL_67_ = 67, /* '{' */
356
356
  YYSYMBOL_68_ = 68, /* '}' */
@@ -360,18 +360,18 @@ enum yysymbol_kind_t
360
360
  YYSYMBOL_Module = 72, /* Module */
361
361
  YYSYMBOL_Imports = 73, /* Imports */
362
362
  YYSYMBOL_FuncDefs = 74, /* FuncDefs */
363
- YYSYMBOL_Exp = 75, /* Exp */
364
- YYSYMBOL_Import = 76, /* Import */
365
- YYSYMBOL_ImportWhat = 77, /* ImportWhat */
366
- YYSYMBOL_ImportFrom = 78, /* ImportFrom */
367
- YYSYMBOL_FuncDef = 79, /* FuncDef */
368
- YYSYMBOL_Params = 80, /* Params */
369
- YYSYMBOL_Param = 81, /* Param */
370
- YYSYMBOL_StringStart = 82, /* StringStart */
371
- YYSYMBOL_String = 83, /* String */
372
- YYSYMBOL_QQString = 84, /* QQString */
373
- YYSYMBOL_ElseBody = 85, /* ElseBody */
374
- YYSYMBOL_ExpD = 86, /* ExpD */
363
+ YYSYMBOL_Query = 75, /* Query */
364
+ YYSYMBOL_Expr = 76, /* Expr */
365
+ YYSYMBOL_Import = 77, /* Import */
366
+ YYSYMBOL_ImportWhat = 78, /* ImportWhat */
367
+ YYSYMBOL_ImportFrom = 79, /* ImportFrom */
368
+ YYSYMBOL_FuncDef = 80, /* FuncDef */
369
+ YYSYMBOL_Params = 81, /* Params */
370
+ YYSYMBOL_Param = 82, /* Param */
371
+ YYSYMBOL_StringStart = 83, /* StringStart */
372
+ YYSYMBOL_String = 84, /* String */
373
+ YYSYMBOL_QQString = 85, /* QQString */
374
+ YYSYMBOL_ElseBody = 86, /* ElseBody */
375
375
  YYSYMBOL_Term = 87, /* Term */
376
376
  YYSYMBOL_Args = 88, /* Args */
377
377
  YYSYMBOL_Arg = 89, /* Arg */
@@ -382,8 +382,9 @@ enum yysymbol_kind_t
382
382
  YYSYMBOL_ObjPats = 94, /* ObjPats */
383
383
  YYSYMBOL_ObjPat = 95, /* ObjPat */
384
384
  YYSYMBOL_Keyword = 96, /* Keyword */
385
- YYSYMBOL_MkDict = 97, /* MkDict */
386
- YYSYMBOL_MkDictPair = 98 /* MkDictPair */
385
+ YYSYMBOL_DictPairs = 97, /* DictPairs */
386
+ YYSYMBOL_DictPair = 98, /* DictPair */
387
+ YYSYMBOL_DictExpr = 99 /* DictExpr */
387
388
  };
388
389
  typedef enum yysymbol_kind_t yysymbol_kind_t;
389
390
 
@@ -405,15 +406,7 @@ struct lexer_param {
405
406
  void yyerror(YYLTYPE* loc, block* answer, int* errors,
406
407
  struct locfile* locations, struct lexer_param* lexer_param_ptr, const char *s){
407
408
  (*errors)++;
408
- if (strstr(s, "unexpected")) {
409
- #ifdef WIN32
410
- locfile_locate(locations, *loc, "jq: error: %s (Windows cmd shell quoting issues?)", s);
411
- #else
412
- locfile_locate(locations, *loc, "jq: error: %s (Unix shell quoting issues?)", s);
413
- #endif
414
- } else {
415
- locfile_locate(locations, *loc, "jq: error: %s", s);
416
- }
409
+ locfile_locate(locations, *loc, "jq: error: %s", s);
417
410
  }
418
411
 
419
412
  int yylex(YYSTYPE* yylval, YYLTYPE* yylloc, block* answer, int* errors,
@@ -550,7 +543,7 @@ static block gen_loc_object(location *loc, struct locfile *locations) {
550
543
  }
551
544
 
552
545
 
553
- #line 554 "src/parser.c"
546
+ #line 547 "src/parser.c"
554
547
 
555
548
 
556
549
  #ifdef short
@@ -875,18 +868,18 @@ union yyalloc
875
868
  #endif /* !YYCOPY_NEEDED */
876
869
 
877
870
  /* YYFINAL -- State number of the termination state. */
878
- #define YYFINAL 30
871
+ #define YYFINAL 31
879
872
  /* YYLAST -- Last index in YYTABLE. */
880
- #define YYLAST 2051
873
+ #define YYLAST 1226
881
874
 
882
875
  /* YYNTOKENS -- Number of terminals. */
883
876
  #define YYNTOKENS 70
884
877
  /* YYNNTS -- Number of nonterminals. */
885
- #define YYNNTS 29
878
+ #define YYNNTS 30
886
879
  /* YYNRULES -- Number of rules. */
887
- #define YYNRULES 169
880
+ #define YYNRULES 168
888
881
  /* YYNSTATES -- Number of states. */
889
- #define YYNSTATES 315
882
+ #define YYNSTATES 312
890
883
 
891
884
  /* YYMAXUTOK -- Last valid token kind. */
892
885
  #define YYMAXUTOK 303
@@ -907,12 +900,12 @@ static const yytype_int8 yytranslate[] =
907
900
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
908
901
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
909
902
  2, 2, 2, 2, 2, 2, 69, 57, 2, 2,
910
- 61, 62, 55, 53, 49, 54, 64, 56, 2, 2,
911
- 2, 2, 2, 2, 2, 2, 2, 2, 63, 60,
903
+ 64, 65, 55, 53, 49, 54, 60, 56, 2, 2,
904
+ 2, 2, 2, 2, 2, 2, 2, 2, 63, 62,
912
905
  51, 50, 52, 59, 2, 2, 2, 2, 2, 2,
913
906
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
914
907
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
915
- 2, 65, 2, 66, 2, 2, 2, 2, 2, 2,
908
+ 2, 61, 2, 66, 2, 2, 2, 2, 2, 2,
916
909
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
917
910
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
918
911
  2, 2, 2, 67, 48, 68, 2, 2, 2, 2,
@@ -940,23 +933,23 @@ static const yytype_int8 yytranslate[] =
940
933
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
941
934
  static const yytype_int16 yyrline[] =
942
935
  {
943
- 0, 290, 290, 293, 298, 301, 316, 319, 324, 327,
944
- 332, 336, 339, 343, 347, 351, 354, 359, 362, 365,
945
- 370, 377, 381, 385, 389, 393, 397, 401, 405, 409,
946
- 413, 417, 421, 425, 429, 433, 437, 441, 445, 449,
947
- 453, 457, 461, 465, 469, 473, 477, 481, 486, 489,
948
- 506, 515, 522, 530, 541, 546, 552, 555, 560, 564,
949
- 571, 574, 580, 587, 590, 593, 599, 602, 605, 610,
950
- 613, 616, 622, 625, 628, 636, 640, 643, 646, 649,
951
- 652, 655, 658, 661, 664, 668, 674, 677, 680, 683,
952
- 686, 689, 692, 695, 698, 701, 704, 707, 710, 713,
953
- 716, 719, 722, 725, 728, 731, 734, 756, 760, 764,
954
- 767, 779, 784, 785, 786, 787, 790, 793, 798, 803,
955
- 806, 811, 814, 819, 823, 826, 831, 834, 839, 842,
956
- 847, 850, 853, 856, 859, 862, 870, 876, 879, 882,
957
- 885, 888, 891, 894, 897, 900, 903, 906, 909, 912,
958
- 915, 918, 921, 924, 927, 932, 935, 936, 937, 940,
959
- 943, 946, 949, 953, 958, 962, 966, 970, 974, 982
936
+ 0, 282, 282, 285, 290, 293, 308, 311, 316, 319,
937
+ 325, 328, 331, 337, 340, 343, 349, 352, 355, 358,
938
+ 361, 364, 367, 370, 373, 376, 379, 382, 385, 388,
939
+ 391, 394, 397, 400, 403, 406, 409, 412, 415, 421,
940
+ 424, 441, 450, 457, 465, 476, 481, 487, 490, 495,
941
+ 499, 506, 509, 515, 522, 525, 528, 534, 537, 540,
942
+ 546, 549, 552, 560, 564, 567, 570, 573, 576, 579,
943
+ 582, 585, 588, 592, 598, 601, 604, 607, 610, 613,
944
+ 616, 619, 622, 625, 628, 631, 634, 637, 640, 643,
945
+ 646, 649, 652, 655, 658, 661, 664, 671, 674, 677,
946
+ 680, 683, 687, 690, 694, 712, 716, 720, 723, 735,
947
+ 740, 741, 742, 743, 746, 749, 754, 759, 762, 767,
948
+ 770, 775, 779, 782, 787, 790, 795, 798, 803, 806,
949
+ 809, 812, 815, 818, 826, 832, 835, 838, 841, 844,
950
+ 847, 850, 853, 856, 859, 862, 865, 868, 871, 874,
951
+ 877, 880, 883, 889, 892, 895, 900, 903, 906, 909,
952
+ 913, 918, 922, 926, 930, 934, 942, 948, 951
960
953
  };
961
954
  #endif
962
955
 
@@ -982,12 +975,13 @@ static const char *const yytname[] =
982
975
  "\">=\"", "\"?//\"", "QQSTRING_START", "QQSTRING_TEXT",
983
976
  "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", "QQSTRING_END",
984
977
  "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'",
985
- "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "':'", "'.'", "'['", "']'",
978
+ "'%'", "NONOPT", "'?'", "'.'", "'['", "';'", "':'", "'('", "')'", "']'",
986
979
  "'{'", "'}'", "'$'", "$accept", "TopLevel", "Module", "Imports",
987
- "FuncDefs", "Exp", "Import", "ImportWhat", "ImportFrom", "FuncDef",
988
- "Params", "Param", "StringStart", "String", "QQString", "ElseBody",
989
- "ExpD", "Term", "Args", "Arg", "RepPatterns", "Patterns", "Pattern",
990
- "ArrayPats", "ObjPats", "ObjPat", "Keyword", "MkDict", "MkDictPair", YY_NULLPTR
980
+ "FuncDefs", "Query", "Expr", "Import", "ImportWhat", "ImportFrom",
981
+ "FuncDef", "Params", "Param", "StringStart", "String", "QQString",
982
+ "ElseBody", "Term", "Args", "Arg", "RepPatterns", "Patterns", "Pattern",
983
+ "ArrayPats", "ObjPats", "ObjPat", "Keyword", "DictPairs", "DictPair",
984
+ "DictExpr", YY_NULLPTR
991
985
  };
992
986
 
993
987
  static const char *
@@ -997,12 +991,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
997
991
  }
998
992
  #endif
999
993
 
1000
- #define YYPACT_NINF (-157)
994
+ #define YYPACT_NINF (-146)
1001
995
 
1002
996
  #define yypact_value_is_default(Yyn) \
1003
997
  ((Yyn) == YYPACT_NINF)
1004
998
 
1005
- #define YYTABLE_NINF (-156)
999
+ #define YYTABLE_NINF (-154)
1006
1000
 
1007
1001
  #define yytable_value_is_error(Yyn) \
1008
1002
  ((Yyn) == YYTABLE_NINF)
@@ -1011,38 +1005,38 @@ yysymbol_name (yysymbol_kind_t yysymbol)
1011
1005
  STATE-NUM. */
1012
1006
  static const yytype_int16 yypact[] =
1013
1007
  {
1014
- -14, 881, 15, 62, -33, -23, -157, -157, -9, -157,
1015
- 37, 881, 912, 912, 881, 40, 2, -157, -157, 881,
1016
- 193, 282, 415, 595, -18, 1400, 881, -157, -157, 12,
1017
- -157, 1, 1, 881, 62, 683, 881, -157, -157, -11,
1018
- 1756, 17, 49, 26, 10, -157, -157, 14, 21, 1230,
1019
- -157, 74, -9, 53, 51, -157, 1041, -26, 63, 64,
1020
- -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
1021
- -157, -157, -157, -157, -157, -157, -157, -157, -157, 881,
1022
- 65, 69, 70, 82, 67, 881, 881, 881, 881, 881,
1023
- 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
1024
- 881, 881, 881, 881, 881, 881, 881, 881, 881, -157,
1025
- -157, 1924, 13, 87, -5, -4, 348, 127, -157, -157,
1026
- -157, 1924, 881, -157, -157, 1451, 1924, 56, -157, 68,
1027
- 881, 482, -5, -5, 533, 881, -157, -157, -157, -157,
1028
- -157, -157, 651, 513, -157, 513, 513, 1264, 513, 513,
1029
- -157, 651, 144, 1992, 113, 113, 1958, 594, 913, 1992,
1030
- 1992, 1992, 1992, 1992, 1992, 113, 113, 1924, 1958, 1992,
1031
- 113, 113, 14, 14, 98, 98, 98, -157, 881, -157,
1032
- -157, -157, -5, 974, 117, 111, 119, 749, 102, 96,
1033
- 881, 104, 1007, 116, -157, -157, 881, -157, -157, -157,
1034
- 61, -157, 1502, -157, 1706, 110, 112, -157, -157, 1924,
1035
- -10, -157, 513, 126, 0, 126, 126, 115, 126, 126,
1036
- -157, -157, 1790, -157, -37, 118, 120, 121, 881, 122,
1037
- -38, -157, 124, -5, 881, 123, 1075, -157, -157, 1109,
1038
- -157, 815, 131, -157, -157, -157, 68, 128, -157, 881,
1039
- 881, -157, -157, 881, 881, -157, 513, 513, -157, -5,
1040
- -157, -5, -5, -5, 1298, -5, 974, -157, -5, 134,
1041
- 1924, -157, 133, 137, 145, 1143, -157, -157, 881, 1840,
1042
- 1890, 1553, 1604, 126, 126, -157, -157, -157, -157, 130,
1043
- -157, -157, -157, -157, -157, -157, 146, 1655, -157, 881,
1044
- 881, 881, -5, -157, -157, 1706, 1332, 1177, -157, -157,
1045
- -157, 881, -157, 1366, -157
1008
+ 31, 890, 44, 35, 11, 9, -146, -146, 38, -146,
1009
+ 85, 890, 956, 956, 956, 112, 26, -146, -146, 956,
1010
+ 279, 345, 412, 608, 59, 25, 1040, 890, -146, -146,
1011
+ -2, -146, 4, 4, 890, 35, 692, 890, -146, -146,
1012
+ 20, -18, 1073, 1105, 131, 86, -146, -146, -2, -146,
1013
+ 164, 38, 108, 107, -146, 22, 104, 0, -34, 121,
1014
+ 124, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1015
+ -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1016
+ 890, 135, 137, 134, 126, 141, 890, 890, -146, 956,
1017
+ 956, 956, 956, -5, 956, 956, 956, 956, 956, 956,
1018
+ 956, 956, 956, 956, 956, 956, 956, 956, 956, 956,
1019
+ 956, 956, 84, 177, 147, -146, 3, 173, 199, -146,
1020
+ -146, -146, 84, 890, -146, -146, 114, 84, 77, -146,
1021
+ 890, 13, 479, -5, -5, 546, 890, -146, -146, -146,
1022
+ -146, -146, -146, 956, -146, 956, 956, 78, 956, 956,
1023
+ -146, 663, 220, 84, -146, 1169, 505, 505, 1137, -146,
1024
+ -5, 1018, 187, 166, 188, 606, 205, 1169, 1169, 1169,
1025
+ 1169, 1169, 1169, 505, 505, 1169, 505, 505, 208, 208,
1026
+ -146, -146, -146, -146, 890, -146, -146, 758, 176, 175,
1027
+ 890, 184, 6, 57, -146, -146, 890, -146, 123, -146,
1028
+ -146, 83, -146, -146, 18, 185, 189, -146, -146, 84,
1029
+ 1137, 200, 200, 200, 203, 200, 200, 206, -146, -146,
1030
+ -146, -42, 207, 209, 210, 890, 212, -45, -146, 213,
1031
+ -5, 890, 33, 193, 28, -146, -146, 71, -146, 824,
1032
+ 218, -146, -146, -146, -146, 13, 215, 890, 890, -146,
1033
+ -146, 890, 890, 956, 956, -5, -146, -5, -5, -5,
1034
+ 103, -5, 1018, -146, -5, 227, 84, -146, -146, 222,
1035
+ 223, 226, 74, -146, -146, 890, -7, 2, 160, 163,
1036
+ 200, 200, -146, -146, -146, -146, 225, -146, -146, -146,
1037
+ -146, -146, -146, 235, 170, -146, 890, 890, 890, -5,
1038
+ -146, -146, 18, 105, 76, -146, -146, -146, 890, -146,
1039
+ 142, -146
1046
1040
  };
1047
1041
 
1048
1042
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1050,54 +1044,54 @@ static const yytype_int16 yypact[] =
1050
1044
  means the default is an error. */
1051
1045
  static const yytype_uint8 yydefact[] =
1052
1046
  {
1053
- 4, 0, 0, 6, 110, 81, 108, 100, 102, 73,
1054
- 0, 0, 0, 0, 0, 0, 0, 109, 61, 0,
1055
- 0, 0, 0, 0, 0, 0, 0, 63, 101, 47,
1056
- 1, 0, 0, 8, 6, 0, 0, 77, 60, 0,
1057
- 0, 0, 0, 18, 0, 75, 74, 32, 0, 0,
1058
- 84, 0, 0, 83, 0, 105, 0, 0, 165, 164,
1059
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1060
- 147, 148, 149, 150, 151, 152, 153, 154, 166, 0,
1061
- 162, 167, 0, 156, 0, 0, 0, 0, 0, 0,
1047
+ 4, 0, 0, 6, 108, 69, 106, 89, 91, 61,
1048
+ 0, 0, 0, 0, 0, 0, 0, 107, 52, 0,
1049
+ 0, 0, 0, 0, 0, 0, 15, 0, 54, 90,
1050
+ 38, 1, 0, 0, 8, 6, 0, 0, 65, 51,
1051
+ 0, 0, 0, 0, 104, 0, 63, 62, 92, 72,
1052
+ 0, 0, 71, 0, 95, 0, 0, 0, 0, 162,
1053
+ 161, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1054
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 163,
1055
+ 0, 159, 164, 0, 154, 0, 0, 0, 5, 0,
1062
1056
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
1064
- 5, 10, 0, 80, 0, 0, 0, 0, 53, 52,
1065
- 3, 2, 8, 7, 48, 0, 118, 0, 116, 0,
1066
- 0, 0, 0, 0, 0, 0, 112, 103, 85, 79,
1067
- 113, 104, 0, 0, 115, 0, 0, 0, 0, 0,
1068
- 106, 0, 0, 40, 41, 42, 25, 24, 23, 27,
1069
- 31, 34, 36, 39, 26, 45, 46, 28, 29, 22,
1070
- 43, 44, 30, 33, 35, 37, 38, 64, 0, 62,
1071
- 76, 123, 0, 0, 0, 0, 122, 0, 82, 0,
1072
- 0, 91, 0, 0, 9, 49, 0, 111, 59, 58,
1073
- 0, 56, 0, 16, 0, 0, 0, 19, 17, 20,
1074
- 0, 158, 0, 169, 71, 159, 163, 0, 161, 160,
1075
- 157, 107, 0, 126, 0, 0, 0, 130, 0, 0,
1076
- 0, 128, 0, 0, 0, 93, 0, 78, 114, 0,
1077
- 90, 0, 87, 51, 50, 117, 0, 0, 54, 0,
1078
- 0, 68, 15, 0, 0, 70, 0, 0, 65, 0,
1079
- 124, 0, 0, 0, 0, 0, 0, 125, 0, 121,
1080
- 11, 92, 89, 99, 98, 0, 86, 57, 0, 0,
1081
- 0, 0, 0, 69, 168, 127, 136, 132, 131, 0,
1082
- 134, 129, 133, 88, 96, 95, 97, 0, 67, 0,
1083
- 0, 0, 0, 94, 55, 0, 0, 0, 135, 66,
1084
- 12, 0, 14, 0, 13
1057
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1058
+ 0, 0, 10, 0, 68, 88, 0, 0, 0, 44,
1059
+ 43, 3, 2, 8, 7, 39, 0, 116, 0, 114,
1060
+ 0, 0, 0, 0, 0, 0, 0, 73, 67, 111,
1061
+ 94, 110, 93, 0, 113, 0, 0, 0, 0, 0,
1062
+ 96, 0, 0, 13, 14, 31, 32, 33, 16, 121,
1063
+ 0, 0, 0, 0, 120, 19, 18, 21, 23, 25,
1064
+ 27, 30, 20, 36, 37, 17, 34, 35, 22, 24,
1065
+ 26, 28, 29, 55, 0, 53, 64, 0, 70, 0,
1066
+ 0, 79, 0, 0, 9, 40, 0, 109, 0, 50,
1067
+ 49, 0, 47, 101, 0, 0, 0, 103, 102, 12,
1068
+ 168, 166, 156, 160, 0, 158, 157, 0, 155, 105,
1069
+ 124, 0, 0, 0, 128, 0, 0, 0, 126, 0,
1070
+ 0, 0, 0, 81, 0, 66, 112, 0, 78, 0,
1071
+ 75, 42, 41, 115, 45, 0, 0, 0, 0, 59,
1072
+ 100, 0, 0, 0, 0, 0, 122, 0, 0, 0,
1073
+ 0, 0, 0, 123, 0, 119, 11, 56, 80, 77,
1074
+ 87, 86, 0, 74, 48, 0, 0, 0, 0, 0,
1075
+ 167, 165, 125, 134, 130, 129, 0, 132, 127, 131,
1076
+ 76, 84, 83, 85, 0, 58, 0, 0, 0, 0,
1077
+ 82, 46, 0, 0, 0, 133, 57, 97, 0, 99,
1078
+ 0, 98
1085
1079
  };
1086
1080
 
1087
1081
  /* YYPGOTO[NTERM-NUM]. */
1088
1082
  static const yytype_int16 yypgoto[] =
1089
1083
  {
1090
- -157, -157, -157, 169, 57, -1, -157, -157, 148, -13,
1091
- -157, -39, -157, -7, -157, -96, -101, -6, -157, 18,
1092
- -157, -66, -114, -157, -157, -56, -156, -102, -157
1084
+ -146, -146, -146, 236, 179, -1, 1, -146, -146, 253,
1085
+ -8, -146, 53, -146, 5, -146, 7, 284, -146, 115,
1086
+ -146, 60, -100, -146, -146, 48, -145, 169, -146, -140
1093
1087
  };
1094
1088
 
1095
1089
  /* YYDEFGOTO[NTERM-NUM]. */
1096
1090
  static const yytype_uint8 yydefgoto[] =
1097
1091
  {
1098
- 0, 2, 3, 33, 120, 111, 34, 35, 117, 26,
1099
- 200, 201, 27, 28, 112, 252, 213, 29, 127, 128,
1100
- 184, 185, 186, 224, 230, 231, 81, 82, 83
1092
+ 0, 2, 3, 34, 121, 112, 26, 35, 36, 118,
1093
+ 27, 201, 202, 28, 29, 113, 250, 30, 128, 129,
1094
+ 162, 163, 164, 221, 227, 228, 82, 83, 84, 211
1101
1095
  };
1102
1096
 
1103
1097
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1105,422 +1099,256 @@ static const yytype_uint8 yydefgoto[] =
1105
1099
  number is the opposite. If YYTABLE_NINF, syntax error. */
1106
1100
  static const yytype_int16 yytable[] =
1107
1101
  {
1108
- 25, 181, 1, 45, 52, 113, 41, 42, 46, 52,
1109
- 40, 266, 259, 43, 53, 30, 80, 113, 47, 49,
1110
- 122, 56, 113, 142, 118, 118, 114, 232, 36, 260,
1111
- 267, 132, 121, 38, 125, 126, 37, 143, 18, 142,
1112
- 211, 39, 144, 18, 215, 216, 44, 218, 219, 220,
1113
- 129, 84, 130, 143, 113, 134, 177, 178, 135, 179,
1114
- 182, 187, 183, 133, 115, 116, 205, 206, 223, 106,
1115
- 107, 108, 198, 109, 199, 138, 115, 116, 147, 31,
1116
- 32, 115, 116, 136, 153, 154, 155, 156, 157, 158,
1117
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1118
- 169, 170, 171, 172, 173, 174, 175, 176, 188, 122,
1119
- 232, 255, 139, 115, 116, 192, 196, 140, 197, 269,
1120
- 243, 246, 244, 247, -156, -156, 145, 146, 148, 202,
1121
- 204, 151, 149, 208, 209, 80, 152, 214, 150, 214,
1122
- 214, 193, 214, 214, 80, 285, 180, 286, 287, 288,
1123
- 221, 290, -156, -156, 292, 283, 284, 109, 233, 234,
1124
- -120, 237, 238, 240, -156, -156, 104, 105, 106, 107,
1125
- 108, 253, 109, 254, 256, -119, 229, 222, 257, 194,
1126
- 119, 261, 271, 262, 263, 265, 236, 268, 308, 239,
1127
- 276, 278, 293, 302, 48, 126, 294, 4, 5, 6,
1128
- 7, 8, 9, 123, 295, 303, 214, 277, 10, 309,
1129
- 291, 0, 11, 0, 245, 0, 12, 13, 0, 0,
1130
- 0, 14, 0, 15, 16, 17, 0, 264, 0, 0,
1131
- 0, 0, 0, 270, 0, 18, 0, 0, 0, 0,
1132
- 275, 0, 0, 0, 0, 0, 0, 19, 279, 280,
1133
- 214, 214, 281, 282, 20, 0, 0, 21, 22, 229,
1134
- 23, 0, 24, 0, 0, 0, 0, 0, 0, 0,
1135
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 0,
1136
- 0, 0, -72, 50, 0, 0, 51, -72, 0, 0,
1137
- 52, 0, -72, -72, -72, -72, -72, 0, 305, 306,
1138
- 307, 0, -72, -72, -72, 0, 0, -72, -72, -72,
1139
- 313, -72, 0, 0, 0, -72, -72, -72, -72, -72,
1140
- -72, -72, -72, 0, 18, 0, 0, -72, 0, 0,
1141
- -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
1142
- 0, -72, -72, 0, -72, -72, -72, -72, -72, 189,
1143
- -72, 0, 4, 5, 6, 7, 8, 9, 0, 0,
1144
- 0, 0, 0, 10, 0, 0, 0, 11, 0, 0,
1145
- 0, 12, 13, 0, 0, 0, 14, 0, 15, 16,
1146
- 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1147
- 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1148
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 20,
1149
- 0, 190, 21, 22, 191, 23, 54, 24, 0, 4,
1102
+ 25, 159, 132, 114, 262, 212, 213, 255, 215, 216,
1103
+ 41, 51, 51, 42, 43, 44, 229, 199, 295, 200,
1104
+ 55, 57, 296, 263, 256, 52, 123, 46, 81, 143,
1105
+ 86, 87, 47, 122, 144, 126, 127, 119, 119, 247,
1106
+ 248, 86, 87, 249, 31, 18, 18, 1, 86, 87,
1107
+ 86, 87, 32, 33, 86, 87, 160, 115, 116, 117,
1108
+ 220, 241, 161, 242, 187, 142, 86, 87, 38, 239,
1109
+ 86, 87, 240, 86, 87, 37, 86, 87, 267, 147,
1110
+ 39, 86, 87, 130, 131, 153, 154, 88, 140, 40,
1111
+ 155, 156, 157, 158, 269, 165, 166, 167, 168, 169,
1112
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1113
+ 180, 181, 182, 280, 281, 123, 192, 229, 45, 86,
1114
+ 87, 188, 86, 87, 86, 87, 86, 87, 85, 198,
1115
+ 265, 204, 86, 87, 136, 209, 208, 270, 308, 196,
1116
+ 293, 309, 197, 214, 210, 245, 210, 210, 246, 210,
1117
+ 210, 86, 87, 86, 87, 282, 81, 283, 284, 285,
1118
+ 135, 287, 86, 87, 289, 137, 226, 138, 286, 141,
1119
+ 307, 86, 87, 139, 189, 151, 195, 4, 5, 6,
1120
+ 7, 8, 9, 232, 145, 244, 234, 146, 10, 237,
1121
+ 86, 87, 11, 205, 206, 127, 12, 13, 148, 305,
1122
+ 149, 14, 150, 15, 16, 17, 186, 311, 86, 87,
1123
+ 152, 86, 87, 193, 231, 18, 90, 91, 86, 87,
1124
+ 183, 184, 297, 185, 260, 298, 219, 19, 230, -118,
1125
+ 266, 94, 301, 20, 21, 235, 190, 22, 272, 191,
1126
+ 23, 236, 24, 238, 102, 103, 276, 277, 253, 251,
1127
+ 278, 279, 268, 252, 210, 210, 105, 106, 107, 108,
1128
+ 109, 110, 111, 109, 110, 111, 254, 226, -117, 143,
1129
+ 257, 124, 258, 259, 294, 261, 264, 273, 275, -60,
1130
+ 49, 290, 291, 50, -60, 292, 120, 51, 299, -60,
1131
+ -60, -60, -60, -60, 300, 302, 303, 304, 274, -60,
1132
+ -60, -60, 194, 48, -60, -60, -60, 310, -60, 306,
1133
+ 288, 243, -60, -60, -60, -60, -60, -60, -60, -60,
1134
+ 218, 18, 0, 0, -60, 0, 0, -60, -60, -60,
1135
+ -60, -60, -60, -60, -60, -60, -60, 0, -60, -60,
1136
+ -60, -60, -60, 0, -60, -60, 53, -60, 0, 4,
1150
1137
  5, 6, 7, 8, 9, 0, 0, 0, 0, 0,
1151
1138
  10, 0, 0, 0, 11, 0, 0, 0, 12, 13,
1152
1139
  0, 0, 0, 14, 0, 15, 16, 17, 0, 0,
1153
1140
  0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
1154
1141
  0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
1155
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 21,
1156
- 22, 55, 23, 203, 24, 0, 4, 5, 6, 7,
1142
+ 0, 0, 0, 0, 0, 20, 21, 0, 0, 22,
1143
+ 0, 54, 23, 56, 24, 0, 4, 5, 6, 7,
1157
1144
  8, 9, 0, 0, 0, 0, 0, 10, 0, 0,
1158
1145
  0, 11, 0, 0, 0, 12, 13, 0, 0, 0,
1159
- 14, 0, 15, 16, 17, 0, 0, 4, 5, 6,
1160
- 7, 8, 9, 0, 18, 0, 0, 0, 0, 0,
1161
- 0, 0, 0, 0, 207, 0, 19, 4, 5, 6,
1162
- 7, 8, 9, 20, 16, 17, 21, 22, 10, 23,
1163
- 0, 24, 11, 0, 0, 18, 12, 13, 0, 0,
1164
- 0, 14, 0, 15, 16, 17, 0, 212, 0, 0,
1165
- 0, 0, 0, 0, 20, 18, 0, 21, 22, 0,
1166
- 23, 0, 24, 0, 0, 0, 0, 19, 0, 0,
1167
- 0, 0, 0, 0, 20, 0, 57, 21, 22, 58,
1168
- 23, 59, 24, 52, 0, 86, 87, 0, 0, 60,
1169
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1170
- 71, 72, 73, 74, 75, 76, 77, 78, 0, 0,
1171
- 0, 0, 0, 97, 98, 0, 0, 18, 0, 0,
1172
- 0, 0, 0, 0, 0, 102, 103, 104, 105, 106,
1173
- 107, 108, 210, 109, 0, 58, 79, 59, 0, 52,
1174
- 0, 0, 0, -155, 0, 60, 61, 62, 63, 64,
1175
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1176
- 75, 76, 77, 78, 0, 0, 0, 4, 5, 6,
1177
- 7, 8, 9, 18, 0, 0, 0, 0, 10, 0,
1178
- 0, 0, 11, 0, 0, 0, 12, 13, 0, 0,
1179
- 0, 14, 79, 15, 16, 17, 0, 0, 0, -155,
1180
- 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
1181
- 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
1182
- 0, 0, 0, 124, 20, 0, 0, 21, 22, 0,
1183
- 23, 0, 24, 4, 5, 6, 7, 8, 9, 0,
1146
+ 14, 0, 15, 16, 17, 0, 0, 0, 0, 0,
1147
+ 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
1148
+ 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
1149
+ 0, 0, 20, 21, 0, 0, 22, 0, 0, 23,
1150
+ 203, 24, 0, 4, 5, 6, 7, 8, 9, 0,
1184
1151
  0, 0, 0, 0, 10, 0, 0, 0, 11, 0,
1185
1152
  0, 0, 12, 13, 0, 0, 0, 14, 0, 15,
1186
- 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
1153
+ 16, 17, 0, 0, 0, 0, -154, -154, 0, 0,
1187
1154
  0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
1188
- 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
1189
- 20, 0, 0, 21, 22, 235, 23, 0, 24, 4,
1190
- 5, 6, 7, 8, 9, 0, 0, 0, 0, 0,
1191
- 10, 0, 0, 0, 11, 0, 0, 0, 12, 13,
1192
- 0, 0, 0, 14, 0, 15, 16, 17, 0, 0,
1193
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
1194
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
1195
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 21,
1196
- 22, 274, 23, 0, 24, 4, 5, 6, 7, 8,
1197
- 9, 0, 0, 0, 0, 0, 10, 0, 0, 0,
1198
- 11, 0, 0, 0, 12, 13, 0, 0, 0, 14,
1199
- 0, 15, 16, 17, 0, 0, 4, 5, 6, 7,
1200
- 8, 9, 0, 18, 86, 87, 0, 0, 0, 0,
1201
- 0, 0, 0, 0, 0, 19, 0, 0, 0, 89,
1202
- 0, 0, 20, 16, 17, 21, 22, 0, 23, 0,
1203
- 24, 0, 97, 98, 18, 0, 0, 0, 0, 0,
1204
- 0, 0, 0, 0, 102, 103, 104, 105, 106, 107,
1205
- 108, 0, 109, 20, 0, 225, 21, 22, 226, 23,
1206
- 227, 24, 52, 0, 0, 0, 0, 0, 60, 61,
1207
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1208
- 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
1209
- 0, 0, 0, 0, 0, 0, 18, 85, 86, 87,
1210
- 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1211
- 0, 0, 0, 89, 90, 228, 0, 0, 0, 0,
1212
- 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
1213
- 0, 85, 86, 87, 88, 99, 100, 101, 102, 103,
1214
- 104, 105, 106, 107, 108, 0, 109, 89, 90, 0,
1215
- 241, 0, 0, 242, 91, 92, 93, 94, 95, 96,
1216
- 97, 98, 0, 0, 0, 85, 86, 87, 88, 99,
1217
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
1218
- 109, 89, 90, 0, 0, 0, 0, 141, 91, 92,
1219
- 93, 94, 95, 96, 97, 98, 0, 0, 0, 85,
1220
- 86, 87, 88, 99, 100, 101, 102, 103, 104, 105,
1221
- 106, 107, 108, 0, 109, 89, 90, 0, 0, 0,
1222
- 0, 272, 91, 92, 93, 94, 95, 96, 97, 98,
1223
- 0, 0, 0, 85, 86, 87, 88, 99, 100, 101,
1224
- 102, 103, 104, 105, 106, 107, 108, 0, 109, 89,
1225
- 90, 0, 0, 0, 0, 273, 91, 92, 93, 94,
1226
- 95, 96, 97, 98, 0, 0, 0, 85, 86, 87,
1227
- 88, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1228
- 108, 0, 109, 89, 90, 0, 0, 0, 0, 296,
1229
- 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
1230
- 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
1231
- 104, 105, 106, 107, 108, 0, 109, 311, 0, 312,
1232
- 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
1233
- 0, 0, 0, 0, 0, 0, 89, 90, 0, 0,
1234
- 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
1235
- 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
1236
- 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
1237
- 89, 90, 137, 0, 0, 0, 0, 91, 92, 93,
1238
- 94, 95, 96, 97, 98, 0, 0, 0, 85, 86,
1239
- 87, 88, 99, 100, 101, 102, 103, 104, 105, 106,
1240
- 107, 108, 0, 109, 89, 90, 217, 0, 0, 0,
1241
- 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
1242
- 0, 0, 85, 86, 87, 88, 99, 100, 101, 102,
1243
- 103, 104, 105, 106, 107, 108, 0, 109, 89, 90,
1244
- 289, 0, 0, 0, 0, 91, 92, 93, 94, 95,
1245
- 96, 97, 98, 0, 0, 0, 85, 86, 87, 88,
1246
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1247
- 0, 109, 89, 90, 310, 0, 0, 0, 0, 91,
1248
- 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
1249
- 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
1250
- 105, 106, 107, 108, 0, 109, 89, 90, 314, 0,
1251
- 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
1252
- 98, 0, 0, 0, 0, 0, 0, 0, 99, 100,
1253
- 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
1254
- 110, 85, 86, 87, 88, 0, 0, 0, 0, 0,
1255
- 0, 0, 0, 0, 0, 0, 0, 89, 90, 0,
1256
- 0, 0, 0, 0, 91, 92, 93, 94, 95, 96,
1257
- 97, 98, 0, 0, 0, 0, 0, 0, 0, 99,
1258
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
1259
- 109, 195, 85, 86, 87, 88, 0, 0, 0, 0,
1260
- 0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
1261
- 0, 0, 0, 0, 0, 91, 92, 93, 94, 95,
1262
- 96, 97, 98, 0, 0, 0, 0, 0, 0, 0,
1263
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1264
- 0, 109, 248, 85, 86, 87, 88, 0, 0, 0,
1265
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
1266
- 90, 0, 0, 0, 0, 0, 91, 92, 93, 94,
1267
- 95, 96, 97, 98, 0, 0, 0, 0, 0, 0,
1268
- 0, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1269
- 108, 0, 109, 300, 85, 86, 87, 88, 0, 0,
1155
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 20,
1156
+ 21, 0, 0, 22, -154, -154, 23, 207, 24, 0,
1157
+ 4, 5, 6, 7, 8, 9, -154, -154, 107, 108,
1158
+ 109, 110, 111, 0, 0, 11, 0, 0, 0, 12,
1159
+ 13, 0, 0, 0, 14, 0, 0, 16, 17, 0,
1160
+ 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
1270
1161
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271
- 89, 90, 0, 0, 0, 0, 0, 91, 92, 93,
1272
- 94, 95, 96, 97, 98, 0, 0, 0, 0, 0,
1273
- 0, 0, 99, 100, 101, 102, 103, 104, 105, 106,
1274
- 107, 108, 0, 109, 301, 85, 86, 87, 88, 0,
1162
+ 19, 0, 0, 0, 0, 0, 20, 21, 0, 58,
1163
+ 22, 0, 59, 23, 60, 24, 51, 90, 91, 0,
1164
+ 0, 0, 61, 62, 63, 64, 65, 66, 67, 68,
1165
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1166
+ 79, 0, 0, 0, 0, 102, 103, 0, 0, 0,
1167
+ 18, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1168
+ 108, 109, 110, 111, 217, 0, 0, 59, 0, 60,
1169
+ 0, 51, 80, 0, 0, 0, -153, 61, 62, 63,
1170
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1171
+ 74, 75, 76, 77, 78, 79, 4, 5, 6, 7,
1172
+ 8, 9, 0, 0, 0, 18, 0, 10, 0, 0,
1173
+ 0, 11, 0, 0, 0, 12, 13, 0, 0, 0,
1174
+ 14, 0, 15, 16, 17, 0, 0, 80, 0, 0,
1175
+ 0, -153, 0, 0, 18, 0, 0, 0, 0, 0,
1176
+ 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
1177
+ 0, 0, 20, 21, 125, 0, 22, 0, 0, 23,
1178
+ 0, 24, 4, 5, 6, 7, 8, 9, 0, 0,
1179
+ 0, 0, 0, 10, 0, 0, 0, 11, 0, 0,
1180
+ 0, 12, 13, 0, 0, 0, 14, 0, 15, 16,
1181
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183
+ 0, 0, 19, 0, 0, 0, 0, 0, 20, 21,
1184
+ 0, 0, 22, 0, 233, 23, 0, 24, 4, 5,
1185
+ 6, 7, 8, 9, 0, 0, 0, 0, 0, 10,
1186
+ 0, 0, 0, 11, 0, 0, 0, 12, 13, 0,
1187
+ 0, 0, 14, 0, 15, 16, 17, 0, 0, 0,
1188
+ 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,
1189
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
1190
+ 0, 0, 0, 0, 20, 21, 0, 0, 22, 0,
1191
+ 271, 23, 0, 24, 4, 5, 6, 7, 8, 9,
1192
+ 0, 0, 0, 0, 0, 10, 0, 0, 0, 11,
1193
+ 0, 0, 0, 12, 13, 0, 0, 0, 14, 0,
1194
+ 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1195
+ 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
1196
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
1197
+ 20, 21, 0, 0, 22, 0, 0, 23, 0, 24,
1198
+ 4, 5, 6, 7, 8, 9, 0, 0, 0, 0,
1199
+ 0, 0, 0, 0, 0, 11, 0, 0, 0, 12,
1200
+ 13, 0, 0, 0, 14, 0, 0, 16, 17, 0,
1201
+ 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
1275
1202
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276
- 0, 89, 90, 0, 0, 0, 0, 0, 91, 92,
1277
- 93, 94, 95, 96, 97, 98, 0, 0, 0, 0,
1278
- 0, 0, 0, 99, 100, 101, 102, 103, 104, 105,
1279
- 106, 107, 108, 0, 109, 304, 85, 86, 87, 88,
1280
- 0, 0, 0, 0, 0, 0, 0, 249, 250, 0,
1281
- 0, 251, 89, 90, 0, 0, 0, 0, 0, 91,
1282
- 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
1283
- 0, 0, 0, 0, 99, 100, 101, 102, 103, 104,
1284
- 105, 106, 107, 108, 0, 109, 85, 86, 87, 88,
1285
- 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
1286
- 0, 0, 89, 90, 0, 0, 0, 0, 0, 91,
1287
- 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
1288
- 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
1289
- 105, 106, 107, 108, 0, 109, 89, 90, 0, 0,
1290
- 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
1291
- 98, 0, 0, 0, 0, 258, 0, 0, 99, 100,
1292
- 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
1293
- 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
1294
- 0, 0, 0, 0, 0, 298, 89, 90, 0, 0,
1295
- 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
1296
- 98, 0, 0, 0, 0, 0, 0, 0, 99, 100,
1297
- 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
1298
- 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
1299
- 299, 0, 0, 0, 0, 0, 89, 90, 0, 0,
1300
- 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
1301
- 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
1302
- 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
1303
- 89, 90, 0, 0, 0, 0, 0, 91, 92, 93,
1304
- 94, 95, 96, 97, 98, 0, 0, 0, 85, 86,
1305
- 87, 88, 99, 100, 101, 102, 103, 104, 105, 106,
1306
- 107, 108, 0, 109, 89, 90, 0, 0, 0, 0,
1307
- 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
1308
- 0, 0, -156, 86, 87, 0, 0, 0, 101, 102,
1309
- 103, 104, 105, 106, 107, 108, 0, 109, 89, 90,
1310
- 0, 0, 0, 0, 0, -156, -156, -156, -156, -156,
1311
- -156, 97, 98, 0, 0, 0, 0, 0, 0, 0,
1312
- 0, 0, -156, 102, 103, 104, 105, 106, 107, 108,
1313
- 0, 109
1203
+ 19, 0, 0, 0, 0, 0, 20, 21, 0, 222,
1204
+ 22, 0, 223, 23, 224, 24, 51, 0, 0, 0,
1205
+ 0, 0, 61, 62, 63, 64, 65, 66, 67, 68,
1206
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1207
+ 89, 90, 91, 92, 93, 0, 0, 0, 0, 0,
1208
+ 18, 0, 0, 0, 0, 0, 94, 95, 0, 0,
1209
+ 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
1210
+ 103, 0, 225, 89, 90, 91, 92, 133, 0, 0,
1211
+ 104, 105, 106, 107, 108, 109, 110, 111, 0, 94,
1212
+ 95, 0, 0, 0, 0, 0, 96, 97, 98, 99,
1213
+ 100, 101, 102, 103, 0, 89, 90, 91, 92, 134,
1214
+ 0, 0, 0, 104, 105, 106, 107, 108, 109, 110,
1215
+ 111, 94, 95, 0, 0, 0, 0, 0, 96, 97,
1216
+ 98, 99, 100, 101, 102, 103, 0, 89, 90, 91,
1217
+ 92, 0, 0, 0, 0, 104, 105, 106, 107, 108,
1218
+ 109, 110, 111, 94, 95, 0, 0, 0, 0, 0,
1219
+ 96, 97, 98, 99, 100, 101, 102, 103, 0, -154,
1220
+ 90, 91, 0, 0, 0, 0, 0, 104, 105, 106,
1221
+ 107, 108, 109, 110, 111, 94, 95, 0, 0, 0,
1222
+ 0, 0, -154, -154, -154, -154, -154, -154, 102, 103,
1223
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -154,
1224
+ 105, 106, 107, 108, 109, 110, 111
1314
1225
  };
1315
1226
 
1316
1227
  static const yytype_int16 yycheck[] =
1317
1228
  {
1318
- 1, 6, 16, 1, 8, 5, 12, 13, 6, 8,
1319
- 11, 49, 49, 14, 21, 0, 23, 5, 19, 20,
1320
- 33, 22, 5, 49, 31, 32, 14, 183, 61, 66,
1321
- 68, 14, 33, 42, 35, 36, 59, 63, 42, 49,
1322
- 142, 4, 68, 42, 145, 146, 6, 148, 149, 151,
1323
- 61, 69, 63, 63, 5, 29, 43, 44, 48, 46,
1324
- 65, 65, 67, 14, 64, 65, 132, 133, 182, 55,
1325
- 56, 57, 4, 59, 6, 1, 64, 65, 79, 17,
1326
- 18, 64, 65, 62, 85, 86, 87, 88, 89, 90,
1327
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1328
- 101, 102, 103, 104, 105, 106, 107, 108, 115, 122,
1329
- 266, 212, 59, 64, 65, 116, 60, 66, 62, 233,
1330
- 4, 60, 6, 62, 11, 12, 63, 63, 63, 130,
1331
- 131, 49, 63, 134, 135, 142, 69, 143, 68, 145,
1332
- 146, 14, 148, 149, 151, 259, 59, 261, 262, 263,
1333
- 6, 265, 39, 40, 268, 256, 257, 59, 41, 48,
1334
- 41, 59, 66, 59, 51, 52, 53, 54, 55, 56,
1335
- 57, 61, 59, 61, 48, 41, 183, 178, 63, 122,
1336
- 32, 63, 59, 63, 63, 63, 187, 63, 302, 190,
1337
- 59, 63, 59, 63, 1, 196, 59, 4, 5, 6,
1338
- 7, 8, 9, 34, 59, 59, 212, 246, 15, 305,
1339
- 266, -1, 19, -1, 196, -1, 23, 24, -1, -1,
1340
- -1, 28, -1, 30, 31, 32, -1, 228, -1, -1,
1341
- -1, -1, -1, 234, -1, 42, -1, -1, -1, -1,
1342
- 241, -1, -1, -1, -1, -1, -1, 54, 249, 250,
1343
- 256, 257, 253, 254, 61, -1, -1, 64, 65, 266,
1344
- 67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
1345
- -1, -1, -1, -1, -1, -1, -1, 278, -1, -1,
1346
- -1, -1, 0, 1, -1, -1, 4, 5, -1, -1,
1347
- 8, -1, 10, 11, 12, 13, 14, -1, 299, 300,
1348
- 301, -1, 20, 21, 22, -1, -1, 25, 26, 27,
1349
- 311, 29, -1, -1, -1, 33, 34, 35, 36, 37,
1350
- 38, 39, 40, -1, 42, -1, -1, 45, -1, -1,
1351
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1352
- -1, 59, 60, -1, 62, 63, 64, 65, 66, 1,
1353
- 68, -1, 4, 5, 6, 7, 8, 9, -1, -1,
1354
- -1, -1, -1, 15, -1, -1, -1, 19, -1, -1,
1355
- -1, 23, 24, -1, -1, -1, 28, -1, 30, 31,
1356
- 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1357
- 42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1358
- -1, -1, 54, -1, -1, -1, -1, -1, -1, 61,
1359
- -1, 63, 64, 65, 66, 67, 1, 69, -1, 4,
1229
+ 1, 6, 20, 5, 49, 145, 146, 49, 148, 149,
1230
+ 11, 8, 8, 12, 13, 14, 161, 4, 25, 6,
1231
+ 21, 22, 20, 68, 66, 20, 34, 1, 23, 63,
1232
+ 48, 49, 6, 34, 68, 36, 37, 32, 33, 21,
1233
+ 22, 48, 49, 25, 0, 42, 42, 16, 48, 49,
1234
+ 48, 49, 17, 18, 48, 49, 61, 59, 60, 61,
1235
+ 160, 4, 67, 6, 61, 65, 48, 49, 59, 63,
1236
+ 48, 49, 66, 48, 49, 64, 48, 49, 45, 80,
1237
+ 42, 48, 49, 63, 64, 86, 87, 62, 66, 4,
1238
+ 89, 90, 91, 92, 66, 94, 95, 96, 97, 98,
1239
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1240
+ 109, 110, 111, 253, 254, 123, 117, 262, 6, 48,
1241
+ 49, 116, 48, 49, 48, 49, 48, 49, 69, 130,
1242
+ 230, 132, 48, 49, 48, 136, 135, 66, 62, 62,
1243
+ 66, 65, 65, 65, 143, 62, 145, 146, 65, 148,
1244
+ 149, 48, 49, 48, 49, 255, 151, 257, 258, 259,
1245
+ 29, 261, 48, 49, 264, 1, 161, 59, 65, 65,
1246
+ 65, 48, 49, 66, 1, 49, 62, 4, 5, 6,
1247
+ 7, 8, 9, 184, 63, 62, 187, 63, 15, 190,
1248
+ 48, 49, 19, 133, 134, 196, 23, 24, 63, 299,
1249
+ 63, 28, 68, 30, 31, 32, 59, 65, 48, 49,
1250
+ 69, 48, 49, 14, 48, 42, 11, 12, 48, 49,
1251
+ 43, 44, 62, 46, 225, 62, 6, 54, 41, 41,
1252
+ 231, 26, 62, 60, 61, 59, 63, 64, 239, 66,
1253
+ 67, 66, 69, 59, 39, 40, 247, 248, 48, 64,
1254
+ 251, 252, 59, 64, 253, 254, 51, 52, 53, 54,
1255
+ 55, 56, 57, 55, 56, 57, 63, 262, 41, 63,
1256
+ 63, 35, 63, 63, 275, 63, 63, 59, 63, 0,
1257
+ 1, 59, 59, 4, 5, 59, 33, 8, 63, 10,
1258
+ 11, 12, 13, 14, 59, 296, 297, 298, 245, 20,
1259
+ 21, 22, 123, 19, 25, 26, 27, 308, 29, 302,
1260
+ 262, 196, 33, 34, 35, 36, 37, 38, 39, 40,
1261
+ 151, 42, -1, -1, 45, -1, -1, 48, 49, 50,
1262
+ 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
1263
+ 61, 62, 63, -1, 65, 66, 1, 68, -1, 4,
1360
1264
  5, 6, 7, 8, 9, -1, -1, -1, -1, -1,
1361
1265
  15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
1362
1266
  -1, -1, -1, 28, -1, 30, 31, 32, -1, -1,
1363
1267
  -1, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1364
1268
  -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1365
- -1, -1, -1, -1, -1, -1, 61, -1, -1, 64,
1366
- 65, 66, 67, 1, 69, -1, 4, 5, 6, 7,
1269
+ -1, -1, -1, -1, -1, 60, 61, -1, -1, 64,
1270
+ -1, 66, 67, 1, 69, -1, 4, 5, 6, 7,
1367
1271
  8, 9, -1, -1, -1, -1, -1, 15, -1, -1,
1368
1272
  -1, 19, -1, -1, -1, 23, 24, -1, -1, -1,
1369
- 28, -1, 30, 31, 32, -1, -1, 4, 5, 6,
1370
- 7, 8, 9, -1, 42, -1, -1, -1, -1, -1,
1371
- -1, -1, -1, -1, 1, -1, 54, 4, 5, 6,
1372
- 7, 8, 9, 61, 31, 32, 64, 65, 15, 67,
1373
- -1, 69, 19, -1, -1, 42, 23, 24, -1, -1,
1374
- -1, 28, -1, 30, 31, 32, -1, 54, -1, -1,
1375
- -1, -1, -1, -1, 61, 42, -1, 64, 65, -1,
1376
- 67, -1, 69, -1, -1, -1, -1, 54, -1, -1,
1377
- -1, -1, -1, -1, 61, -1, 1, 64, 65, 4,
1378
- 67, 6, 69, 8, -1, 11, 12, -1, -1, 14,
1379
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1380
- 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
1381
- -1, -1, -1, 39, 40, -1, -1, 42, -1, -1,
1382
- -1, -1, -1, -1, -1, 51, 52, 53, 54, 55,
1383
- 56, 57, 1, 59, -1, 4, 61, 6, -1, 8,
1384
- -1, -1, -1, 68, -1, 14, 15, 16, 17, 18,
1385
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1386
- 29, 30, 31, 32, -1, -1, -1, 4, 5, 6,
1387
- 7, 8, 9, 42, -1, -1, -1, -1, 15, -1,
1388
- -1, -1, 19, -1, -1, -1, 23, 24, -1, -1,
1389
- -1, 28, 61, 30, 31, 32, -1, -1, -1, 68,
1390
- -1, -1, -1, -1, -1, 42, -1, -1, -1, -1,
1391
- -1, -1, -1, -1, -1, -1, -1, 54, -1, -1,
1392
- -1, -1, -1, 60, 61, -1, -1, 64, 65, -1,
1393
- 67, -1, 69, 4, 5, 6, 7, 8, 9, -1,
1273
+ 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
1274
+ -1, -1, -1, -1, 42, -1, -1, -1, -1, -1,
1275
+ -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
1276
+ -1, -1, 60, 61, -1, -1, 64, -1, -1, 67,
1277
+ 1, 69, -1, 4, 5, 6, 7, 8, 9, -1,
1394
1278
  -1, -1, -1, -1, 15, -1, -1, -1, 19, -1,
1395
1279
  -1, -1, 23, 24, -1, -1, -1, 28, -1, 30,
1396
- 31, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1280
+ 31, 32, -1, -1, -1, -1, 11, 12, -1, -1,
1397
1281
  -1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
1398
- -1, -1, -1, 54, -1, -1, -1, -1, -1, -1,
1399
- 61, -1, -1, 64, 65, 66, 67, -1, 69, 4,
1400
- 5, 6, 7, 8, 9, -1, -1, -1, -1, -1,
1401
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
1402
- -1, -1, -1, 28, -1, 30, 31, 32, -1, -1,
1403
- -1, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1404
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
1405
- -1, -1, -1, -1, -1, -1, 61, -1, -1, 64,
1406
- 65, 66, 67, -1, 69, 4, 5, 6, 7, 8,
1407
- 9, -1, -1, -1, -1, -1, 15, -1, -1, -1,
1408
- 19, -1, -1, -1, 23, 24, -1, -1, -1, 28,
1409
- -1, 30, 31, 32, -1, -1, 4, 5, 6, 7,
1410
- 8, 9, -1, 42, 11, 12, -1, -1, -1, -1,
1411
- -1, -1, -1, -1, -1, 54, -1, -1, -1, 26,
1412
- -1, -1, 61, 31, 32, 64, 65, -1, 67, -1,
1413
- 69, -1, 39, 40, 42, -1, -1, -1, -1, -1,
1414
- -1, -1, -1, -1, 51, 52, 53, 54, 55, 56,
1415
- 57, -1, 59, 61, -1, 1, 64, 65, 4, 67,
1416
- 6, 69, 8, -1, -1, -1, -1, -1, 14, 15,
1417
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1418
- 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1419
- -1, -1, -1, -1, -1, -1, 42, 10, 11, 12,
1420
- 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1421
- -1, -1, -1, 26, 27, 61, -1, -1, -1, -1,
1422
- 33, 34, 35, 36, 37, 38, 39, 40, -1, -1,
1423
- -1, 10, 11, 12, 13, 48, 49, 50, 51, 52,
1424
- 53, 54, 55, 56, 57, -1, 59, 26, 27, -1,
1425
- 63, -1, -1, 66, 33, 34, 35, 36, 37, 38,
1426
- 39, 40, -1, -1, -1, 10, 11, 12, 13, 48,
1427
- 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
1428
- 59, 26, 27, -1, -1, -1, -1, 66, 33, 34,
1429
- 35, 36, 37, 38, 39, 40, -1, -1, -1, 10,
1430
- 11, 12, 13, 48, 49, 50, 51, 52, 53, 54,
1431
- 55, 56, 57, -1, 59, 26, 27, -1, -1, -1,
1432
- -1, 66, 33, 34, 35, 36, 37, 38, 39, 40,
1433
- -1, -1, -1, 10, 11, 12, 13, 48, 49, 50,
1434
- 51, 52, 53, 54, 55, 56, 57, -1, 59, 26,
1435
- 27, -1, -1, -1, -1, 66, 33, 34, 35, 36,
1436
- 37, 38, 39, 40, -1, -1, -1, 10, 11, 12,
1437
- 13, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1438
- 57, -1, 59, 26, 27, -1, -1, -1, -1, 66,
1439
- 33, 34, 35, 36, 37, 38, 39, 40, -1, -1,
1440
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
1441
- 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
1442
- 10, 11, 12, 13, -1, -1, -1, -1, -1, -1,
1443
- -1, -1, -1, -1, -1, -1, 26, 27, -1, -1,
1444
- -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
1445
- 40, -1, -1, -1, 10, 11, 12, 13, 48, 49,
1446
- 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1447
- 26, 27, 62, -1, -1, -1, -1, 33, 34, 35,
1448
- 36, 37, 38, 39, 40, -1, -1, -1, 10, 11,
1449
- 12, 13, 48, 49, 50, 51, 52, 53, 54, 55,
1450
- 56, 57, -1, 59, 26, 27, 62, -1, -1, -1,
1451
- -1, 33, 34, 35, 36, 37, 38, 39, 40, -1,
1452
- -1, -1, 10, 11, 12, 13, 48, 49, 50, 51,
1453
- 52, 53, 54, 55, 56, 57, -1, 59, 26, 27,
1454
- 62, -1, -1, -1, -1, 33, 34, 35, 36, 37,
1455
- 38, 39, 40, -1, -1, -1, 10, 11, 12, 13,
1456
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1457
- -1, 59, 26, 27, 62, -1, -1, -1, -1, 33,
1458
- 34, 35, 36, 37, 38, 39, 40, -1, -1, -1,
1459
- 10, 11, 12, 13, 48, 49, 50, 51, 52, 53,
1460
- 54, 55, 56, 57, -1, 59, 26, 27, 62, -1,
1461
- -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
1462
- 40, -1, -1, -1, -1, -1, -1, -1, 48, 49,
1463
- 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1464
- 60, 10, 11, 12, 13, -1, -1, -1, -1, -1,
1465
- -1, -1, -1, -1, -1, -1, -1, 26, 27, -1,
1466
- -1, -1, -1, -1, 33, 34, 35, 36, 37, 38,
1467
- 39, 40, -1, -1, -1, -1, -1, -1, -1, 48,
1468
- 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
1469
- 59, 60, 10, 11, 12, 13, -1, -1, -1, -1,
1470
- -1, -1, -1, -1, -1, -1, -1, -1, 26, 27,
1471
- -1, -1, -1, -1, -1, 33, 34, 35, 36, 37,
1472
- 38, 39, 40, -1, -1, -1, -1, -1, -1, -1,
1473
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1474
- -1, 59, 60, 10, 11, 12, 13, -1, -1, -1,
1475
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
1476
- 27, -1, -1, -1, -1, -1, 33, 34, 35, 36,
1477
- 37, 38, 39, 40, -1, -1, -1, -1, -1, -1,
1478
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1479
- 57, -1, 59, 60, 10, 11, 12, 13, -1, -1,
1282
+ -1, -1, -1, 54, -1, -1, -1, -1, -1, 60,
1283
+ 61, -1, -1, 64, 39, 40, 67, 1, 69, -1,
1284
+ 4, 5, 6, 7, 8, 9, 51, 52, 53, 54,
1285
+ 55, 56, 57, -1, -1, 19, -1, -1, -1, 23,
1286
+ 24, -1, -1, -1, 28, -1, -1, 31, 32, -1,
1287
+ -1, -1, -1, -1, -1, -1, -1, -1, 42, -1,
1480
1288
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1481
- 26, 27, -1, -1, -1, -1, -1, 33, 34, 35,
1482
- 36, 37, 38, 39, 40, -1, -1, -1, -1, -1,
1483
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
1484
- 56, 57, -1, 59, 60, 10, 11, 12, 13, -1,
1289
+ 54, -1, -1, -1, -1, -1, 60, 61, -1, 1,
1290
+ 64, -1, 4, 67, 6, 69, 8, 11, 12, -1,
1291
+ -1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
1292
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1293
+ 32, -1, -1, -1, -1, 39, 40, -1, -1, -1,
1294
+ 42, -1, -1, -1, -1, -1, -1, 51, 52, 53,
1295
+ 54, 55, 56, 57, 1, -1, -1, 4, -1, 6,
1296
+ -1, 8, 64, -1, -1, -1, 68, 14, 15, 16,
1297
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1298
+ 27, 28, 29, 30, 31, 32, 4, 5, 6, 7,
1299
+ 8, 9, -1, -1, -1, 42, -1, 15, -1, -1,
1300
+ -1, 19, -1, -1, -1, 23, 24, -1, -1, -1,
1301
+ 28, -1, 30, 31, 32, -1, -1, 64, -1, -1,
1302
+ -1, 68, -1, -1, 42, -1, -1, -1, -1, -1,
1303
+ -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
1304
+ -1, -1, 60, 61, 62, -1, 64, -1, -1, 67,
1305
+ -1, 69, 4, 5, 6, 7, 8, 9, -1, -1,
1306
+ -1, -1, -1, 15, -1, -1, -1, 19, -1, -1,
1307
+ -1, 23, 24, -1, -1, -1, 28, -1, 30, 31,
1308
+ 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1309
+ 42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1310
+ -1, -1, 54, -1, -1, -1, -1, -1, 60, 61,
1311
+ -1, -1, 64, -1, 66, 67, -1, 69, 4, 5,
1312
+ 6, 7, 8, 9, -1, -1, -1, -1, -1, 15,
1313
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
1314
+ -1, -1, 28, -1, 30, 31, 32, -1, -1, -1,
1315
+ -1, -1, -1, -1, -1, -1, 42, -1, -1, -1,
1316
+ -1, -1, -1, -1, -1, -1, -1, -1, 54, -1,
1317
+ -1, -1, -1, -1, 60, 61, -1, -1, 64, -1,
1318
+ 66, 67, -1, 69, 4, 5, 6, 7, 8, 9,
1319
+ -1, -1, -1, -1, -1, 15, -1, -1, -1, 19,
1320
+ -1, -1, -1, 23, 24, -1, -1, -1, 28, -1,
1321
+ 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
1322
+ -1, -1, 42, -1, -1, -1, -1, -1, -1, -1,
1323
+ -1, -1, -1, -1, 54, -1, -1, -1, -1, -1,
1324
+ 60, 61, -1, -1, 64, -1, -1, 67, -1, 69,
1325
+ 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
1326
+ -1, -1, -1, -1, -1, 19, -1, -1, -1, 23,
1327
+ 24, -1, -1, -1, 28, -1, -1, 31, 32, -1,
1328
+ -1, -1, -1, -1, -1, -1, -1, -1, 42, -1,
1485
1329
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1486
- -1, 26, 27, -1, -1, -1, -1, -1, 33, 34,
1487
- 35, 36, 37, 38, 39, 40, -1, -1, -1, -1,
1488
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
1489
- 55, 56, 57, -1, 59, 60, 10, 11, 12, 13,
1490
- -1, -1, -1, -1, -1, -1, -1, 21, 22, -1,
1491
- -1, 25, 26, 27, -1, -1, -1, -1, -1, 33,
1492
- 34, 35, 36, 37, 38, 39, 40, -1, -1, -1,
1493
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
1494
- 54, 55, 56, 57, -1, 59, 10, 11, 12, 13,
1495
- -1, -1, -1, -1, -1, -1, 20, -1, -1, -1,
1496
- -1, -1, 26, 27, -1, -1, -1, -1, -1, 33,
1497
- 34, 35, 36, 37, 38, 39, 40, -1, -1, -1,
1498
- 10, 11, 12, 13, 48, 49, 50, 51, 52, 53,
1499
- 54, 55, 56, 57, -1, 59, 26, 27, -1, -1,
1330
+ 54, -1, -1, -1, -1, -1, 60, 61, -1, 1,
1331
+ 64, -1, 4, 67, 6, 69, 8, -1, -1, -1,
1332
+ -1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
1333
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1334
+ 10, 11, 12, 13, 14, -1, -1, -1, -1, -1,
1335
+ 42, -1, -1, -1, -1, -1, 26, 27, -1, -1,
1500
1336
  -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
1501
- 40, -1, -1, -1, -1, 45, -1, -1, 48, 49,
1502
- 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1503
- 10, 11, 12, 13, -1, -1, -1, -1, -1, -1,
1504
- -1, -1, -1, -1, -1, 25, 26, 27, -1, -1,
1505
- -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
1506
- 40, -1, -1, -1, -1, -1, -1, -1, 48, 49,
1507
- 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1508
- 10, 11, 12, 13, -1, -1, -1, -1, -1, -1,
1509
- 20, -1, -1, -1, -1, -1, 26, 27, -1, -1,
1510
- -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
1511
- 40, -1, -1, -1, 10, 11, 12, 13, 48, 49,
1512
- 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1513
- 26, 27, -1, -1, -1, -1, -1, 33, 34, 35,
1514
- 36, 37, 38, 39, 40, -1, -1, -1, 10, 11,
1515
- 12, 13, 48, 49, 50, 51, 52, 53, 54, 55,
1516
- 56, 57, -1, 59, 26, 27, -1, -1, -1, -1,
1517
- -1, 33, 34, 35, 36, 37, 38, 39, 40, -1,
1518
- -1, -1, 10, 11, 12, -1, -1, -1, 50, 51,
1519
- 52, 53, 54, 55, 56, 57, -1, 59, 26, 27,
1520
- -1, -1, -1, -1, -1, 33, 34, 35, 36, 37,
1521
- 38, 39, 40, -1, -1, -1, -1, -1, -1, -1,
1522
- -1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
1523
- -1, 59
1337
+ 40, -1, 64, 10, 11, 12, 13, 14, -1, -1,
1338
+ 50, 51, 52, 53, 54, 55, 56, 57, -1, 26,
1339
+ 27, -1, -1, -1, -1, -1, 33, 34, 35, 36,
1340
+ 37, 38, 39, 40, -1, 10, 11, 12, 13, 14,
1341
+ -1, -1, -1, 50, 51, 52, 53, 54, 55, 56,
1342
+ 57, 26, 27, -1, -1, -1, -1, -1, 33, 34,
1343
+ 35, 36, 37, 38, 39, 40, -1, 10, 11, 12,
1344
+ 13, -1, -1, -1, -1, 50, 51, 52, 53, 54,
1345
+ 55, 56, 57, 26, 27, -1, -1, -1, -1, -1,
1346
+ 33, 34, 35, 36, 37, 38, 39, 40, -1, 10,
1347
+ 11, 12, -1, -1, -1, -1, -1, 50, 51, 52,
1348
+ 53, 54, 55, 56, 57, 26, 27, -1, -1, -1,
1349
+ -1, -1, 33, 34, 35, 36, 37, 38, 39, 40,
1350
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 50,
1351
+ 51, 52, 53, 54, 55, 56, 57
1524
1352
  };
1525
1353
 
1526
1354
  /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
@@ -1529,80 +1357,80 @@ static const yytype_int8 yystos[] =
1529
1357
  {
1530
1358
  0, 16, 71, 72, 4, 5, 6, 7, 8, 9,
1531
1359
  15, 19, 23, 24, 28, 30, 31, 32, 42, 54,
1532
- 61, 64, 65, 67, 69, 75, 79, 82, 83, 87,
1533
- 0, 17, 18, 73, 76, 77, 61, 59, 42, 4,
1534
- 75, 87, 87, 75, 6, 1, 6, 75, 1, 75,
1535
- 1, 4, 8, 83, 1, 66, 75, 1, 4, 6,
1536
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1537
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 61,
1538
- 83, 96, 97, 98, 69, 10, 11, 12, 13, 26,
1539
- 27, 33, 34, 35, 36, 37, 38, 39, 40, 48,
1540
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 59,
1541
- 60, 75, 84, 5, 14, 64, 65, 78, 83, 78,
1542
- 74, 75, 79, 73, 60, 75, 75, 88, 89, 61,
1543
- 63, 20, 14, 14, 29, 48, 62, 62, 1, 59,
1544
- 66, 66, 49, 63, 68, 63, 63, 75, 63, 63,
1545
- 68, 49, 69, 75, 75, 75, 75, 75, 75, 75,
1546
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1547
- 75, 75, 75, 75, 75, 75, 75, 43, 44, 46,
1548
- 59, 6, 65, 67, 90, 91, 92, 65, 83, 1,
1549
- 63, 66, 75, 14, 74, 60, 60, 62, 4, 6,
1550
- 80, 81, 75, 1, 75, 91, 91, 1, 75, 75,
1551
- 1, 97, 54, 86, 87, 86, 86, 62, 86, 86,
1552
- 97, 6, 75, 92, 93, 1, 4, 6, 61, 83,
1553
- 94, 95, 96, 41, 48, 66, 75, 59, 66, 75,
1554
- 59, 63, 66, 4, 6, 89, 60, 62, 60, 21,
1555
- 22, 25, 85, 61, 61, 86, 48, 63, 45, 49,
1556
- 66, 63, 63, 63, 75, 63, 49, 68, 63, 92,
1557
- 75, 59, 66, 66, 66, 75, 59, 81, 63, 75,
1558
- 75, 75, 75, 86, 86, 92, 92, 92, 92, 62,
1559
- 92, 95, 92, 59, 59, 59, 66, 75, 25, 20,
1560
- 60, 60, 63, 59, 60, 75, 75, 75, 92, 85,
1561
- 62, 60, 62, 75, 62
1360
+ 60, 61, 64, 67, 69, 75, 76, 80, 83, 84,
1361
+ 87, 0, 17, 18, 73, 77, 78, 64, 59, 42,
1362
+ 4, 75, 76, 76, 76, 6, 1, 6, 87, 1,
1363
+ 4, 8, 84, 1, 66, 75, 1, 75, 1, 4,
1364
+ 6, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1365
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1366
+ 64, 84, 96, 97, 98, 69, 48, 49, 62, 10,
1367
+ 11, 12, 13, 14, 26, 27, 33, 34, 35, 36,
1368
+ 37, 38, 39, 40, 50, 51, 52, 53, 54, 55,
1369
+ 56, 57, 75, 85, 5, 59, 60, 61, 79, 84,
1370
+ 79, 74, 75, 80, 73, 62, 75, 75, 88, 89,
1371
+ 63, 64, 20, 14, 14, 29, 48, 1, 59, 66,
1372
+ 66, 65, 65, 63, 68, 63, 63, 75, 63, 63,
1373
+ 68, 49, 69, 75, 75, 76, 76, 76, 76, 6,
1374
+ 61, 67, 90, 91, 92, 76, 76, 76, 76, 76,
1375
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1376
+ 76, 76, 76, 43, 44, 46, 59, 61, 84, 1,
1377
+ 63, 66, 75, 14, 74, 62, 62, 65, 75, 4,
1378
+ 6, 81, 82, 1, 75, 91, 91, 1, 76, 75,
1379
+ 76, 99, 99, 99, 65, 99, 99, 1, 97, 6,
1380
+ 92, 93, 1, 4, 6, 64, 84, 94, 95, 96,
1381
+ 41, 48, 75, 66, 75, 59, 66, 75, 59, 63,
1382
+ 66, 4, 6, 89, 62, 62, 65, 21, 22, 25,
1383
+ 86, 64, 64, 48, 63, 49, 66, 63, 63, 63,
1384
+ 75, 63, 49, 68, 63, 92, 75, 45, 59, 66,
1385
+ 66, 66, 75, 59, 82, 63, 75, 75, 75, 75,
1386
+ 99, 99, 92, 92, 92, 92, 65, 92, 95, 92,
1387
+ 59, 59, 59, 66, 75, 25, 20, 62, 62, 63,
1388
+ 59, 62, 75, 75, 75, 92, 86, 65, 62, 65,
1389
+ 75, 65
1562
1390
  };
1563
1391
 
1564
1392
  /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
1565
1393
  static const yytype_int8 yyr1[] =
1566
1394
  {
1567
1395
  0, 70, 71, 71, 72, 72, 73, 73, 74, 74,
1568
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1569
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1570
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1571
- 75, 75, 75, 75, 75, 75, 75, 75, 76, 76,
1572
- 77, 77, 77, 78, 79, 79, 80, 80, 81, 81,
1573
- 82, 82, 83, 84, 84, 84, 85, 85, 85, 86,
1574
- 86, 86, 87, 87, 87, 87, 87, 87, 87, 87,
1396
+ 75, 75, 75, 75, 75, 75, 76, 76, 76, 76,
1397
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1398
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 77,
1399
+ 77, 78, 78, 78, 79, 80, 80, 81, 81, 82,
1400
+ 82, 83, 83, 84, 85, 85, 85, 86, 86, 86,
1401
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1575
1402
  87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1576
1403
  87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1577
1404
  87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1578
- 87, 87, 87, 87, 87, 87, 88, 88, 89, 90,
1579
- 90, 91, 91, 92, 92, 92, 93, 93, 94, 94,
1580
- 95, 95, 95, 95, 95, 95, 95, 96, 96, 96,
1405
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1406
+ 87, 87, 87, 87, 88, 88, 89, 90, 90, 91,
1407
+ 91, 92, 92, 92, 93, 93, 94, 94, 95, 95,
1408
+ 95, 95, 95, 95, 95, 96, 96, 96, 96, 96,
1581
1409
  96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1582
- 96, 96, 96, 96, 96, 97, 97, 97, 97, 98,
1583
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98
1410
+ 96, 96, 96, 97, 97, 97, 98, 98, 98, 98,
1411
+ 98, 98, 98, 98, 98, 98, 98, 99, 99
1584
1412
  };
1585
1413
 
1586
1414
  /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
1587
1415
  static const yytype_int8 yyr2[] =
1588
1416
  {
1589
1417
  0, 2, 3, 3, 0, 3, 0, 2, 0, 2,
1590
- 2, 5, 9, 11, 9, 5, 4, 4, 2, 4,
1591
- 4, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1592
- 3, 3, 2, 3, 3, 3, 3, 3, 3, 3,
1593
- 3, 3, 3, 3, 3, 3, 3, 1, 2, 3,
1594
- 4, 4, 2, 1, 5, 8, 1, 3, 1, 1,
1595
- 2, 1, 3, 0, 2, 4, 5, 3, 1, 3,
1596
- 2, 1, 1, 1, 2, 2, 3, 2, 4, 3,
1597
- 2, 1, 3, 2, 2, 3, 5, 4, 6, 5,
1598
- 4, 3, 5, 4, 7, 6, 6, 6, 5, 5,
1599
- 1, 1, 1, 3, 3, 2, 3, 4, 1, 1,
1600
- 1, 4, 3, 3, 4, 3, 1, 3, 1, 3,
1601
- 1, 3, 1, 1, 3, 3, 1, 3, 1, 3,
1602
- 1, 3, 3, 3, 3, 5, 3, 1, 1, 1,
1418
+ 2, 5, 4, 3, 3, 1, 3, 3, 3, 3,
1419
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1420
+ 3, 3, 3, 3, 3, 3, 3, 3, 1, 2,
1421
+ 3, 4, 4, 2, 1, 5, 8, 1, 3, 1,
1422
+ 1, 2, 1, 3, 0, 2, 4, 5, 3, 1,
1423
+ 1, 1, 2, 2, 3, 2, 4, 3, 2, 1,
1424
+ 3, 2, 2, 3, 5, 4, 6, 5, 4, 3,
1425
+ 5, 4, 7, 6, 6, 6, 5, 5, 2, 1,
1426
+ 1, 1, 2, 3, 3, 2, 3, 9, 11, 9,
1427
+ 5, 4, 4, 4, 2, 4, 1, 1, 1, 4,
1428
+ 3, 3, 4, 3, 1, 3, 1, 3, 1, 3,
1429
+ 1, 1, 3, 3, 1, 3, 1, 3, 1, 3,
1430
+ 3, 3, 3, 5, 3, 1, 1, 1, 1, 1,
1603
1431
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1604
- 1, 1, 1, 1, 1, 0, 1, 3, 3, 3,
1605
- 3, 3, 1, 3, 1, 1, 1, 1, 5, 3
1432
+ 1, 1, 1, 0, 1, 3, 3, 3, 3, 1,
1433
+ 3, 1, 1, 1, 1, 5, 3, 3, 1
1606
1434
  };
1607
1435
 
1608
1436
 
@@ -2172,199 +2000,205 @@ yydestruct (const char *yymsg,
2172
2000
  case YYSYMBOL_IDENT: /* IDENT */
2173
2001
  #line 37 "src/parser.y"
2174
2002
  { jv_free(((*yyvaluep).literal)); }
2175
- #line 2176 "src/parser.c"
2003
+ #line 2004 "src/parser.c"
2176
2004
  break;
2177
2005
 
2178
2006
  case YYSYMBOL_FIELD: /* FIELD */
2179
2007
  #line 37 "src/parser.y"
2180
2008
  { jv_free(((*yyvaluep).literal)); }
2181
- #line 2182 "src/parser.c"
2009
+ #line 2010 "src/parser.c"
2182
2010
  break;
2183
2011
 
2184
2012
  case YYSYMBOL_BINDING: /* BINDING */
2185
2013
  #line 37 "src/parser.y"
2186
2014
  { jv_free(((*yyvaluep).literal)); }
2187
- #line 2188 "src/parser.c"
2015
+ #line 2016 "src/parser.c"
2188
2016
  break;
2189
2017
 
2190
2018
  case YYSYMBOL_LITERAL: /* LITERAL */
2191
2019
  #line 37 "src/parser.y"
2192
2020
  { jv_free(((*yyvaluep).literal)); }
2193
- #line 2194 "src/parser.c"
2021
+ #line 2022 "src/parser.c"
2194
2022
  break;
2195
2023
 
2196
2024
  case YYSYMBOL_FORMAT: /* FORMAT */
2197
2025
  #line 37 "src/parser.y"
2198
2026
  { jv_free(((*yyvaluep).literal)); }
2199
- #line 2200 "src/parser.c"
2027
+ #line 2028 "src/parser.c"
2200
2028
  break;
2201
2029
 
2202
2030
  case YYSYMBOL_QQSTRING_TEXT: /* QQSTRING_TEXT */
2203
2031
  #line 37 "src/parser.y"
2204
2032
  { jv_free(((*yyvaluep).literal)); }
2205
- #line 2206 "src/parser.c"
2033
+ #line 2034 "src/parser.c"
2206
2034
  break;
2207
2035
 
2208
2036
  case YYSYMBOL_Module: /* Module */
2209
2037
  #line 38 "src/parser.y"
2210
2038
  { block_free(((*yyvaluep).blk)); }
2211
- #line 2212 "src/parser.c"
2039
+ #line 2040 "src/parser.c"
2212
2040
  break;
2213
2041
 
2214
2042
  case YYSYMBOL_Imports: /* Imports */
2215
2043
  #line 38 "src/parser.y"
2216
2044
  { block_free(((*yyvaluep).blk)); }
2217
- #line 2218 "src/parser.c"
2045
+ #line 2046 "src/parser.c"
2218
2046
  break;
2219
2047
 
2220
2048
  case YYSYMBOL_FuncDefs: /* FuncDefs */
2221
2049
  #line 38 "src/parser.y"
2222
2050
  { block_free(((*yyvaluep).blk)); }
2223
- #line 2224 "src/parser.c"
2051
+ #line 2052 "src/parser.c"
2224
2052
  break;
2225
2053
 
2226
- case YYSYMBOL_Exp: /* Exp */
2054
+ case YYSYMBOL_Query: /* Query */
2227
2055
  #line 38 "src/parser.y"
2228
2056
  { block_free(((*yyvaluep).blk)); }
2229
- #line 2230 "src/parser.c"
2057
+ #line 2058 "src/parser.c"
2058
+ break;
2059
+
2060
+ case YYSYMBOL_Expr: /* Expr */
2061
+ #line 38 "src/parser.y"
2062
+ { block_free(((*yyvaluep).blk)); }
2063
+ #line 2064 "src/parser.c"
2230
2064
  break;
2231
2065
 
2232
2066
  case YYSYMBOL_Import: /* Import */
2233
2067
  #line 38 "src/parser.y"
2234
2068
  { block_free(((*yyvaluep).blk)); }
2235
- #line 2236 "src/parser.c"
2069
+ #line 2070 "src/parser.c"
2236
2070
  break;
2237
2071
 
2238
2072
  case YYSYMBOL_ImportWhat: /* ImportWhat */
2239
2073
  #line 38 "src/parser.y"
2240
2074
  { block_free(((*yyvaluep).blk)); }
2241
- #line 2242 "src/parser.c"
2075
+ #line 2076 "src/parser.c"
2242
2076
  break;
2243
2077
 
2244
2078
  case YYSYMBOL_ImportFrom: /* ImportFrom */
2245
2079
  #line 38 "src/parser.y"
2246
2080
  { block_free(((*yyvaluep).blk)); }
2247
- #line 2248 "src/parser.c"
2081
+ #line 2082 "src/parser.c"
2248
2082
  break;
2249
2083
 
2250
2084
  case YYSYMBOL_FuncDef: /* FuncDef */
2251
2085
  #line 38 "src/parser.y"
2252
2086
  { block_free(((*yyvaluep).blk)); }
2253
- #line 2254 "src/parser.c"
2087
+ #line 2088 "src/parser.c"
2254
2088
  break;
2255
2089
 
2256
2090
  case YYSYMBOL_Params: /* Params */
2257
2091
  #line 38 "src/parser.y"
2258
2092
  { block_free(((*yyvaluep).blk)); }
2259
- #line 2260 "src/parser.c"
2093
+ #line 2094 "src/parser.c"
2260
2094
  break;
2261
2095
 
2262
2096
  case YYSYMBOL_Param: /* Param */
2263
2097
  #line 38 "src/parser.y"
2264
2098
  { block_free(((*yyvaluep).blk)); }
2265
- #line 2266 "src/parser.c"
2099
+ #line 2100 "src/parser.c"
2266
2100
  break;
2267
2101
 
2268
2102
  case YYSYMBOL_StringStart: /* StringStart */
2269
2103
  #line 37 "src/parser.y"
2270
2104
  { jv_free(((*yyvaluep).literal)); }
2271
- #line 2272 "src/parser.c"
2105
+ #line 2106 "src/parser.c"
2272
2106
  break;
2273
2107
 
2274
2108
  case YYSYMBOL_String: /* String */
2275
2109
  #line 38 "src/parser.y"
2276
2110
  { block_free(((*yyvaluep).blk)); }
2277
- #line 2278 "src/parser.c"
2111
+ #line 2112 "src/parser.c"
2278
2112
  break;
2279
2113
 
2280
2114
  case YYSYMBOL_QQString: /* QQString */
2281
2115
  #line 38 "src/parser.y"
2282
2116
  { block_free(((*yyvaluep).blk)); }
2283
- #line 2284 "src/parser.c"
2117
+ #line 2118 "src/parser.c"
2284
2118
  break;
2285
2119
 
2286
2120
  case YYSYMBOL_ElseBody: /* ElseBody */
2287
2121
  #line 38 "src/parser.y"
2288
2122
  { block_free(((*yyvaluep).blk)); }
2289
- #line 2290 "src/parser.c"
2290
- break;
2291
-
2292
- case YYSYMBOL_ExpD: /* ExpD */
2293
- #line 38 "src/parser.y"
2294
- { block_free(((*yyvaluep).blk)); }
2295
- #line 2296 "src/parser.c"
2123
+ #line 2124 "src/parser.c"
2296
2124
  break;
2297
2125
 
2298
2126
  case YYSYMBOL_Term: /* Term */
2299
2127
  #line 38 "src/parser.y"
2300
2128
  { block_free(((*yyvaluep).blk)); }
2301
- #line 2302 "src/parser.c"
2129
+ #line 2130 "src/parser.c"
2302
2130
  break;
2303
2131
 
2304
2132
  case YYSYMBOL_Args: /* Args */
2305
2133
  #line 38 "src/parser.y"
2306
2134
  { block_free(((*yyvaluep).blk)); }
2307
- #line 2308 "src/parser.c"
2135
+ #line 2136 "src/parser.c"
2308
2136
  break;
2309
2137
 
2310
2138
  case YYSYMBOL_Arg: /* Arg */
2311
2139
  #line 38 "src/parser.y"
2312
2140
  { block_free(((*yyvaluep).blk)); }
2313
- #line 2314 "src/parser.c"
2141
+ #line 2142 "src/parser.c"
2314
2142
  break;
2315
2143
 
2316
2144
  case YYSYMBOL_RepPatterns: /* RepPatterns */
2317
2145
  #line 38 "src/parser.y"
2318
2146
  { block_free(((*yyvaluep).blk)); }
2319
- #line 2320 "src/parser.c"
2147
+ #line 2148 "src/parser.c"
2320
2148
  break;
2321
2149
 
2322
2150
  case YYSYMBOL_Patterns: /* Patterns */
2323
2151
  #line 38 "src/parser.y"
2324
2152
  { block_free(((*yyvaluep).blk)); }
2325
- #line 2326 "src/parser.c"
2153
+ #line 2154 "src/parser.c"
2326
2154
  break;
2327
2155
 
2328
2156
  case YYSYMBOL_Pattern: /* Pattern */
2329
2157
  #line 38 "src/parser.y"
2330
2158
  { block_free(((*yyvaluep).blk)); }
2331
- #line 2332 "src/parser.c"
2159
+ #line 2160 "src/parser.c"
2332
2160
  break;
2333
2161
 
2334
2162
  case YYSYMBOL_ArrayPats: /* ArrayPats */
2335
2163
  #line 38 "src/parser.y"
2336
2164
  { block_free(((*yyvaluep).blk)); }
2337
- #line 2338 "src/parser.c"
2165
+ #line 2166 "src/parser.c"
2338
2166
  break;
2339
2167
 
2340
2168
  case YYSYMBOL_ObjPats: /* ObjPats */
2341
2169
  #line 38 "src/parser.y"
2342
2170
  { block_free(((*yyvaluep).blk)); }
2343
- #line 2344 "src/parser.c"
2171
+ #line 2172 "src/parser.c"
2344
2172
  break;
2345
2173
 
2346
2174
  case YYSYMBOL_ObjPat: /* ObjPat */
2347
2175
  #line 38 "src/parser.y"
2348
2176
  { block_free(((*yyvaluep).blk)); }
2349
- #line 2350 "src/parser.c"
2177
+ #line 2178 "src/parser.c"
2350
2178
  break;
2351
2179
 
2352
2180
  case YYSYMBOL_Keyword: /* Keyword */
2353
2181
  #line 37 "src/parser.y"
2354
2182
  { jv_free(((*yyvaluep).literal)); }
2355
- #line 2356 "src/parser.c"
2183
+ #line 2184 "src/parser.c"
2356
2184
  break;
2357
2185
 
2358
- case YYSYMBOL_MkDict: /* MkDict */
2186
+ case YYSYMBOL_DictPairs: /* DictPairs */
2359
2187
  #line 38 "src/parser.y"
2360
2188
  { block_free(((*yyvaluep).blk)); }
2361
- #line 2362 "src/parser.c"
2189
+ #line 2190 "src/parser.c"
2362
2190
  break;
2363
2191
 
2364
- case YYSYMBOL_MkDictPair: /* MkDictPair */
2192
+ case YYSYMBOL_DictPair: /* DictPair */
2365
2193
  #line 38 "src/parser.y"
2366
2194
  { block_free(((*yyvaluep).blk)); }
2367
- #line 2368 "src/parser.c"
2195
+ #line 2196 "src/parser.c"
2196
+ break;
2197
+
2198
+ case YYSYMBOL_DictExpr: /* DictExpr */
2199
+ #line 38 "src/parser.y"
2200
+ { block_free(((*yyvaluep).blk)); }
2201
+ #line 2202 "src/parser.c"
2368
2202
  break;
2369
2203
 
2370
2204
  default:
@@ -2667,407 +2501,333 @@ yyreduce:
2667
2501
  YY_REDUCE_PRINT (yyn);
2668
2502
  switch (yyn)
2669
2503
  {
2670
- case 2: /* TopLevel: Module Imports Exp */
2671
- #line 290 "src/parser.y"
2672
- {
2504
+ case 2: /* TopLevel: Module Imports Query */
2505
+ #line 282 "src/parser.y"
2506
+ {
2673
2507
  *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk));
2674
2508
  }
2675
- #line 2676 "src/parser.c"
2509
+ #line 2510 "src/parser.c"
2676
2510
  break;
2677
2511
 
2678
2512
  case 3: /* TopLevel: Module Imports FuncDefs */
2679
- #line 293 "src/parser.y"
2513
+ #line 285 "src/parser.y"
2680
2514
  {
2681
2515
  *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
2682
2516
  }
2683
- #line 2684 "src/parser.c"
2517
+ #line 2518 "src/parser.c"
2684
2518
  break;
2685
2519
 
2686
2520
  case 4: /* Module: %empty */
2687
- #line 298 "src/parser.y"
2521
+ #line 290 "src/parser.y"
2688
2522
  {
2689
2523
  (yyval.blk) = gen_noop();
2690
2524
  }
2691
- #line 2692 "src/parser.c"
2525
+ #line 2526 "src/parser.c"
2692
2526
  break;
2693
2527
 
2694
- case 5: /* Module: "module" Exp ';' */
2695
- #line 301 "src/parser.y"
2696
- {
2528
+ case 5: /* Module: "module" Query ';' */
2529
+ #line 293 "src/parser.y"
2530
+ {
2697
2531
  if (!block_is_const((yyvsp[-1].blk))) {
2698
- FAIL((yyloc), "Module metadata must be constant");
2532
+ FAIL((yylsp[-1]), "Module metadata must be constant");
2699
2533
  (yyval.blk) = gen_noop();
2700
2534
  block_free((yyvsp[-1].blk));
2701
2535
  } else if (block_const_kind((yyvsp[-1].blk)) != JV_KIND_OBJECT) {
2702
- FAIL((yyloc), "Module metadata must be an object");
2536
+ FAIL((yylsp[-1]), "Module metadata must be an object");
2703
2537
  (yyval.blk) = gen_noop();
2704
2538
  block_free((yyvsp[-1].blk));
2705
2539
  } else {
2706
2540
  (yyval.blk) = gen_module((yyvsp[-1].blk));
2707
2541
  }
2708
2542
  }
2709
- #line 2710 "src/parser.c"
2543
+ #line 2544 "src/parser.c"
2710
2544
  break;
2711
2545
 
2712
2546
  case 6: /* Imports: %empty */
2713
- #line 316 "src/parser.y"
2547
+ #line 308 "src/parser.y"
2714
2548
  {
2715
2549
  (yyval.blk) = gen_noop();
2716
2550
  }
2717
- #line 2718 "src/parser.c"
2551
+ #line 2552 "src/parser.c"
2718
2552
  break;
2719
2553
 
2720
2554
  case 7: /* Imports: Import Imports */
2721
- #line 319 "src/parser.y"
2555
+ #line 311 "src/parser.y"
2722
2556
  {
2723
2557
  (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk));
2724
2558
  }
2725
- #line 2726 "src/parser.c"
2559
+ #line 2560 "src/parser.c"
2726
2560
  break;
2727
2561
 
2728
2562
  case 8: /* FuncDefs: %empty */
2729
- #line 324 "src/parser.y"
2563
+ #line 316 "src/parser.y"
2730
2564
  {
2731
2565
  (yyval.blk) = gen_noop();
2732
2566
  }
2733
- #line 2734 "src/parser.c"
2567
+ #line 2568 "src/parser.c"
2734
2568
  break;
2735
2569
 
2736
2570
  case 9: /* FuncDefs: FuncDef FuncDefs */
2737
- #line 327 "src/parser.y"
2571
+ #line 319 "src/parser.y"
2738
2572
  {
2739
2573
  (yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk));
2740
2574
  }
2741
- #line 2742 "src/parser.c"
2575
+ #line 2576 "src/parser.c"
2742
2576
  break;
2743
2577
 
2744
- case 10: /* Exp: FuncDef Exp */
2745
- #line 332 "src/parser.y"
2746
- {
2578
+ case 10: /* Query: FuncDef Query */
2579
+ #line 325 "src/parser.y"
2580
+ {
2747
2581
  (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
2748
2582
  }
2749
- #line 2750 "src/parser.c"
2750
- break;
2751
-
2752
- case 11: /* Exp: Term "as" Patterns '|' Exp */
2753
- #line 336 "src/parser.y"
2754
- {
2755
- (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk));
2756
- }
2757
- #line 2758 "src/parser.c"
2758
- break;
2759
-
2760
- case 12: /* Exp: "reduce" Term "as" Patterns '(' Exp ';' Exp ')' */
2761
- #line 339 "src/parser.y"
2762
- {
2763
- (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
2764
- }
2765
- #line 2766 "src/parser.c"
2583
+ #line 2584 "src/parser.c"
2766
2584
  break;
2767
2585
 
2768
- case 13: /* Exp: "foreach" Term "as" Patterns '(' Exp ';' Exp ';' Exp ')' */
2769
- #line 343 "src/parser.y"
2770
- {
2771
- (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
2772
- }
2773
- #line 2774 "src/parser.c"
2774
- break;
2775
-
2776
- case 14: /* Exp: "foreach" Term "as" Patterns '(' Exp ';' Exp ')' */
2777
- #line 347 "src/parser.y"
2778
- {
2779
- (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
2780
- }
2781
- #line 2782 "src/parser.c"
2782
- break;
2783
-
2784
- case 15: /* Exp: "if" Exp "then" Exp ElseBody */
2785
- #line 351 "src/parser.y"
2586
+ case 11: /* Query: Expr "as" Patterns '|' Query */
2587
+ #line 328 "src/parser.y"
2786
2588
  {
2787
- (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
2788
- }
2789
- #line 2790 "src/parser.c"
2790
- break;
2791
-
2792
- case 16: /* Exp: "if" Exp "then" error */
2793
- #line 354 "src/parser.y"
2794
- {
2795
- FAIL((yyloc), "Possibly unterminated 'if' statement");
2796
- (yyval.blk) = (yyvsp[-2].blk);
2589
+ (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk));
2797
2590
  }
2798
- #line 2799 "src/parser.c"
2591
+ #line 2592 "src/parser.c"
2799
2592
  break;
2800
2593
 
2801
- case 17: /* Exp: "try" Exp "catch" Exp */
2802
- #line 359 "src/parser.y"
2803
- {
2804
- (yyval.blk) = gen_try((yyvsp[-2].blk), (yyvsp[0].blk));
2594
+ case 12: /* Query: "label" BINDING '|' Query */
2595
+ #line 331 "src/parser.y"
2596
+ {
2597
+ jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal)));
2598
+ (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk)));
2599
+ jv_free((yyvsp[-2].literal));
2600
+ jv_free(v);
2805
2601
  }
2806
- #line 2807 "src/parser.c"
2602
+ #line 2603 "src/parser.c"
2807
2603
  break;
2808
2604
 
2809
- case 18: /* Exp: "try" Exp */
2810
- #line 362 "src/parser.y"
2811
- {
2812
- (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK));
2605
+ case 13: /* Query: Query '|' Query */
2606
+ #line 337 "src/parser.y"
2607
+ {
2608
+ (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
2813
2609
  }
2814
- #line 2815 "src/parser.c"
2610
+ #line 2611 "src/parser.c"
2815
2611
  break;
2816
2612
 
2817
- case 19: /* Exp: "try" Exp "catch" error */
2818
- #line 365 "src/parser.y"
2819
- {
2820
- FAIL((yyloc), "Possibly unterminated 'try' statement");
2821
- (yyval.blk) = (yyvsp[-2].blk);
2613
+ case 14: /* Query: Query ',' Query */
2614
+ #line 340 "src/parser.y"
2615
+ {
2616
+ (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk));
2822
2617
  }
2823
- #line 2824 "src/parser.c"
2618
+ #line 2619 "src/parser.c"
2824
2619
  break;
2825
2620
 
2826
- case 20: /* Exp: "label" BINDING '|' Exp */
2827
- #line 370 "src/parser.y"
2828
- {
2829
- jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal)));
2830
- (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk)));
2831
- jv_free((yyvsp[-2].literal));
2832
- jv_free(v);
2621
+ case 15: /* Query: Expr */
2622
+ #line 343 "src/parser.y"
2623
+ {
2624
+ (yyval.blk) = (yyvsp[0].blk);
2833
2625
  }
2834
- #line 2835 "src/parser.c"
2626
+ #line 2627 "src/parser.c"
2835
2627
  break;
2836
2628
 
2837
- case 21: /* Exp: Exp '?' */
2838
- #line 377 "src/parser.y"
2839
- {
2840
- (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK));
2629
+ case 16: /* Expr: Expr "//" Expr */
2630
+ #line 349 "src/parser.y"
2631
+ {
2632
+ (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk));
2841
2633
  }
2842
- #line 2843 "src/parser.c"
2634
+ #line 2635 "src/parser.c"
2843
2635
  break;
2844
2636
 
2845
- case 22: /* Exp: Exp '=' Exp */
2846
- #line 381 "src/parser.y"
2847
- {
2637
+ case 17: /* Expr: Expr '=' Expr */
2638
+ #line 352 "src/parser.y"
2639
+ {
2848
2640
  (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
2849
2641
  }
2850
- #line 2851 "src/parser.c"
2642
+ #line 2643 "src/parser.c"
2851
2643
  break;
2852
2644
 
2853
- case 23: /* Exp: Exp "or" Exp */
2854
- #line 385 "src/parser.y"
2855
- {
2645
+ case 18: /* Expr: Expr "or" Expr */
2646
+ #line 355 "src/parser.y"
2647
+ {
2856
2648
  (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk));
2857
2649
  }
2858
- #line 2859 "src/parser.c"
2650
+ #line 2651 "src/parser.c"
2859
2651
  break;
2860
2652
 
2861
- case 24: /* Exp: Exp "and" Exp */
2862
- #line 389 "src/parser.y"
2863
- {
2653
+ case 19: /* Expr: Expr "and" Expr */
2654
+ #line 358 "src/parser.y"
2655
+ {
2864
2656
  (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk));
2865
2657
  }
2866
- #line 2867 "src/parser.c"
2658
+ #line 2659 "src/parser.c"
2867
2659
  break;
2868
2660
 
2869
- case 25: /* Exp: Exp "//" Exp */
2870
- #line 393 "src/parser.y"
2871
- {
2872
- (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk));
2873
- }
2874
- #line 2875 "src/parser.c"
2875
- break;
2876
-
2877
- case 26: /* Exp: Exp "//=" Exp */
2878
- #line 397 "src/parser.y"
2879
- {
2661
+ case 20: /* Expr: Expr "//=" Expr */
2662
+ #line 361 "src/parser.y"
2663
+ {
2880
2664
  (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk));
2881
2665
  }
2882
- #line 2883 "src/parser.c"
2666
+ #line 2667 "src/parser.c"
2883
2667
  break;
2884
2668
 
2885
- case 27: /* Exp: Exp "|=" Exp */
2886
- #line 401 "src/parser.y"
2887
- {
2669
+ case 21: /* Expr: Expr "|=" Expr */
2670
+ #line 364 "src/parser.y"
2671
+ {
2888
2672
  (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
2889
2673
  }
2890
- #line 2891 "src/parser.c"
2891
- break;
2892
-
2893
- case 28: /* Exp: Exp '|' Exp */
2894
- #line 405 "src/parser.y"
2895
- {
2896
- (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
2897
- }
2898
- #line 2899 "src/parser.c"
2899
- break;
2900
-
2901
- case 29: /* Exp: Exp ',' Exp */
2902
- #line 409 "src/parser.y"
2903
- {
2904
- (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk));
2905
- }
2906
- #line 2907 "src/parser.c"
2674
+ #line 2675 "src/parser.c"
2907
2675
  break;
2908
2676
 
2909
- case 30: /* Exp: Exp '+' Exp */
2910
- #line 413 "src/parser.y"
2911
- {
2677
+ case 22: /* Expr: Expr '+' Expr */
2678
+ #line 367 "src/parser.y"
2679
+ {
2912
2680
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+');
2913
2681
  }
2914
- #line 2915 "src/parser.c"
2682
+ #line 2683 "src/parser.c"
2915
2683
  break;
2916
2684
 
2917
- case 31: /* Exp: Exp "+=" Exp */
2918
- #line 417 "src/parser.y"
2919
- {
2685
+ case 23: /* Expr: Expr "+=" Expr */
2686
+ #line 370 "src/parser.y"
2687
+ {
2920
2688
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+');
2921
2689
  }
2922
- #line 2923 "src/parser.c"
2923
- break;
2924
-
2925
- case 32: /* Exp: '-' Exp */
2926
- #line 421 "src/parser.y"
2927
- {
2928
- (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
2929
- }
2930
- #line 2931 "src/parser.c"
2690
+ #line 2691 "src/parser.c"
2931
2691
  break;
2932
2692
 
2933
- case 33: /* Exp: Exp '-' Exp */
2934
- #line 425 "src/parser.y"
2935
- {
2693
+ case 24: /* Expr: Expr '-' Expr */
2694
+ #line 373 "src/parser.y"
2695
+ {
2936
2696
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-');
2937
2697
  }
2938
- #line 2939 "src/parser.c"
2698
+ #line 2699 "src/parser.c"
2939
2699
  break;
2940
2700
 
2941
- case 34: /* Exp: Exp "-=" Exp */
2942
- #line 429 "src/parser.y"
2943
- {
2701
+ case 25: /* Expr: Expr "-=" Expr */
2702
+ #line 376 "src/parser.y"
2703
+ {
2944
2704
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-');
2945
2705
  }
2946
- #line 2947 "src/parser.c"
2706
+ #line 2707 "src/parser.c"
2947
2707
  break;
2948
2708
 
2949
- case 35: /* Exp: Exp '*' Exp */
2950
- #line 433 "src/parser.y"
2951
- {
2709
+ case 26: /* Expr: Expr '*' Expr */
2710
+ #line 379 "src/parser.y"
2711
+ {
2952
2712
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*');
2953
2713
  }
2954
- #line 2955 "src/parser.c"
2714
+ #line 2715 "src/parser.c"
2955
2715
  break;
2956
2716
 
2957
- case 36: /* Exp: Exp "*=" Exp */
2958
- #line 437 "src/parser.y"
2959
- {
2717
+ case 27: /* Expr: Expr "*=" Expr */
2718
+ #line 382 "src/parser.y"
2719
+ {
2960
2720
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*');
2961
2721
  }
2962
- #line 2963 "src/parser.c"
2722
+ #line 2723 "src/parser.c"
2963
2723
  break;
2964
2724
 
2965
- case 37: /* Exp: Exp '/' Exp */
2966
- #line 441 "src/parser.y"
2967
- {
2725
+ case 28: /* Expr: Expr '/' Expr */
2726
+ #line 385 "src/parser.y"
2727
+ {
2968
2728
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/');
2969
2729
  }
2970
- #line 2971 "src/parser.c"
2730
+ #line 2731 "src/parser.c"
2971
2731
  break;
2972
2732
 
2973
- case 38: /* Exp: Exp '%' Exp */
2974
- #line 445 "src/parser.y"
2975
- {
2733
+ case 29: /* Expr: Expr '%' Expr */
2734
+ #line 388 "src/parser.y"
2735
+ {
2976
2736
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%');
2977
2737
  }
2978
- #line 2979 "src/parser.c"
2738
+ #line 2739 "src/parser.c"
2979
2739
  break;
2980
2740
 
2981
- case 39: /* Exp: Exp "/=" Exp */
2982
- #line 449 "src/parser.y"
2983
- {
2741
+ case 30: /* Expr: Expr "/=" Expr */
2742
+ #line 391 "src/parser.y"
2743
+ {
2984
2744
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/');
2985
2745
  }
2986
- #line 2987 "src/parser.c"
2746
+ #line 2747 "src/parser.c"
2987
2747
  break;
2988
2748
 
2989
- case 40: /* Exp: Exp "%=" Exp */
2990
- #line 453 "src/parser.y"
2991
- {
2749
+ case 31: /* Expr: Expr "%=" Expr */
2750
+ #line 394 "src/parser.y"
2751
+ {
2992
2752
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%');
2993
2753
  }
2994
- #line 2995 "src/parser.c"
2754
+ #line 2755 "src/parser.c"
2995
2755
  break;
2996
2756
 
2997
- case 41: /* Exp: Exp "==" Exp */
2998
- #line 457 "src/parser.y"
2999
- {
2757
+ case 32: /* Expr: Expr "==" Expr */
2758
+ #line 397 "src/parser.y"
2759
+ {
3000
2760
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ);
3001
2761
  }
3002
- #line 3003 "src/parser.c"
2762
+ #line 2763 "src/parser.c"
3003
2763
  break;
3004
2764
 
3005
- case 42: /* Exp: Exp "!=" Exp */
3006
- #line 461 "src/parser.y"
3007
- {
2765
+ case 33: /* Expr: Expr "!=" Expr */
2766
+ #line 400 "src/parser.y"
2767
+ {
3008
2768
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ);
3009
2769
  }
3010
- #line 3011 "src/parser.c"
2770
+ #line 2771 "src/parser.c"
3011
2771
  break;
3012
2772
 
3013
- case 43: /* Exp: Exp '<' Exp */
3014
- #line 465 "src/parser.y"
3015
- {
2773
+ case 34: /* Expr: Expr '<' Expr */
2774
+ #line 403 "src/parser.y"
2775
+ {
3016
2776
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<');
3017
2777
  }
3018
- #line 3019 "src/parser.c"
2778
+ #line 2779 "src/parser.c"
3019
2779
  break;
3020
2780
 
3021
- case 44: /* Exp: Exp '>' Exp */
3022
- #line 469 "src/parser.y"
3023
- {
2781
+ case 35: /* Expr: Expr '>' Expr */
2782
+ #line 406 "src/parser.y"
2783
+ {
3024
2784
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>');
3025
2785
  }
3026
- #line 3027 "src/parser.c"
2786
+ #line 2787 "src/parser.c"
3027
2787
  break;
3028
2788
 
3029
- case 45: /* Exp: Exp "<=" Exp */
3030
- #line 473 "src/parser.y"
3031
- {
2789
+ case 36: /* Expr: Expr "<=" Expr */
2790
+ #line 409 "src/parser.y"
2791
+ {
3032
2792
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ);
3033
2793
  }
3034
- #line 3035 "src/parser.c"
2794
+ #line 2795 "src/parser.c"
3035
2795
  break;
3036
2796
 
3037
- case 46: /* Exp: Exp ">=" Exp */
3038
- #line 477 "src/parser.y"
3039
- {
2797
+ case 37: /* Expr: Expr ">=" Expr */
2798
+ #line 412 "src/parser.y"
2799
+ {
3040
2800
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ);
3041
2801
  }
3042
- #line 3043 "src/parser.c"
2802
+ #line 2803 "src/parser.c"
3043
2803
  break;
3044
2804
 
3045
- case 47: /* Exp: Term */
3046
- #line 481 "src/parser.y"
3047
- {
2805
+ case 38: /* Expr: Term */
2806
+ #line 415 "src/parser.y"
2807
+ {
3048
2808
  (yyval.blk) = (yyvsp[0].blk);
3049
2809
  }
3050
- #line 3051 "src/parser.c"
2810
+ #line 2811 "src/parser.c"
3051
2811
  break;
3052
2812
 
3053
- case 48: /* Import: ImportWhat ';' */
3054
- #line 486 "src/parser.y"
2813
+ case 39: /* Import: ImportWhat ';' */
2814
+ #line 421 "src/parser.y"
3055
2815
  {
3056
2816
  (yyval.blk) = (yyvsp[-1].blk);
3057
2817
  }
3058
- #line 3059 "src/parser.c"
2818
+ #line 2819 "src/parser.c"
3059
2819
  break;
3060
2820
 
3061
- case 49: /* Import: ImportWhat Exp ';' */
3062
- #line 489 "src/parser.y"
3063
- {
2821
+ case 40: /* Import: ImportWhat Query ';' */
2822
+ #line 424 "src/parser.y"
2823
+ {
3064
2824
  if (!block_is_const((yyvsp[-1].blk))) {
3065
- FAIL((yyloc), "Module metadata must be constant");
2825
+ FAIL((yylsp[-1]), "Module metadata must be constant");
3066
2826
  (yyval.blk) = gen_noop();
3067
2827
  block_free((yyvsp[-2].blk));
3068
2828
  block_free((yyvsp[-1].blk));
3069
2829
  } else if (block_const_kind((yyvsp[-1].blk)) != JV_KIND_OBJECT) {
3070
- FAIL((yyloc), "Module metadata must be an object");
2830
+ FAIL((yylsp[-1]), "Module metadata must be an object");
3071
2831
  (yyval.blk) = gen_noop();
3072
2832
  block_free((yyvsp[-2].blk));
3073
2833
  block_free((yyvsp[-1].blk));
@@ -3075,11 +2835,11 @@ yyreduce:
3075
2835
  (yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk));
3076
2836
  }
3077
2837
  }
3078
- #line 3079 "src/parser.c"
2838
+ #line 2839 "src/parser.c"
3079
2839
  break;
3080
2840
 
3081
- case 50: /* ImportWhat: "import" ImportFrom "as" BINDING */
3082
- #line 506 "src/parser.y"
2841
+ case 41: /* ImportWhat: "import" ImportFrom "as" BINDING */
2842
+ #line 441 "src/parser.y"
3083
2843
  {
3084
2844
  jv v = block_const((yyvsp[-2].blk));
3085
2845
  // XXX Make gen_import take only blocks and the int is_data so we
@@ -3089,11 +2849,11 @@ yyreduce:
3089
2849
  jv_free((yyvsp[0].literal));
3090
2850
  jv_free(v);
3091
2851
  }
3092
- #line 3093 "src/parser.c"
2852
+ #line 2853 "src/parser.c"
3093
2853
  break;
3094
2854
 
3095
- case 51: /* ImportWhat: "import" ImportFrom "as" IDENT */
3096
- #line 515 "src/parser.y"
2855
+ case 42: /* ImportWhat: "import" ImportFrom "as" IDENT */
2856
+ #line 450 "src/parser.y"
3097
2857
  {
3098
2858
  jv v = block_const((yyvsp[-2].blk));
3099
2859
  (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0);
@@ -3101,201 +2861,177 @@ yyreduce:
3101
2861
  jv_free((yyvsp[0].literal));
3102
2862
  jv_free(v);
3103
2863
  }
3104
- #line 3105 "src/parser.c"
2864
+ #line 2865 "src/parser.c"
3105
2865
  break;
3106
2866
 
3107
- case 52: /* ImportWhat: "include" ImportFrom */
3108
- #line 522 "src/parser.y"
2867
+ case 43: /* ImportWhat: "include" ImportFrom */
2868
+ #line 457 "src/parser.y"
3109
2869
  {
3110
2870
  jv v = block_const((yyvsp[0].blk));
3111
2871
  (yyval.blk) = gen_import(jv_string_value(v), NULL, 0);
3112
2872
  block_free((yyvsp[0].blk));
3113
2873
  jv_free(v);
3114
2874
  }
3115
- #line 3116 "src/parser.c"
2875
+ #line 2876 "src/parser.c"
3116
2876
  break;
3117
2877
 
3118
- case 53: /* ImportFrom: String */
3119
- #line 530 "src/parser.y"
2878
+ case 44: /* ImportFrom: String */
2879
+ #line 465 "src/parser.y"
3120
2880
  {
3121
2881
  if (!block_is_const((yyvsp[0].blk))) {
3122
- FAIL((yyloc), "Import path must be constant");
2882
+ FAIL((yylsp[0]), "Import path must be constant");
3123
2883
  (yyval.blk) = gen_const(jv_string(""));
3124
2884
  block_free((yyvsp[0].blk));
3125
2885
  } else {
3126
2886
  (yyval.blk) = (yyvsp[0].blk);
3127
2887
  }
3128
2888
  }
3129
- #line 3130 "src/parser.c"
2889
+ #line 2890 "src/parser.c"
3130
2890
  break;
3131
2891
 
3132
- case 54: /* FuncDef: "def" IDENT ':' Exp ';' */
3133
- #line 541 "src/parser.y"
3134
- {
2892
+ case 45: /* FuncDef: "def" IDENT ':' Query ';' */
2893
+ #line 476 "src/parser.y"
2894
+ {
3135
2895
  (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk));
3136
2896
  jv_free((yyvsp[-3].literal));
3137
2897
  }
3138
- #line 3139 "src/parser.c"
2898
+ #line 2899 "src/parser.c"
3139
2899
  break;
3140
2900
 
3141
- case 55: /* FuncDef: "def" IDENT '(' Params ')' ':' Exp ';' */
3142
- #line 546 "src/parser.y"
3143
- {
2901
+ case 46: /* FuncDef: "def" IDENT '(' Params ')' ':' Query ';' */
2902
+ #line 481 "src/parser.y"
2903
+ {
3144
2904
  (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk));
3145
2905
  jv_free((yyvsp[-6].literal));
3146
2906
  }
3147
- #line 3148 "src/parser.c"
2907
+ #line 2908 "src/parser.c"
3148
2908
  break;
3149
2909
 
3150
- case 56: /* Params: Param */
3151
- #line 552 "src/parser.y"
2910
+ case 47: /* Params: Param */
2911
+ #line 487 "src/parser.y"
3152
2912
  {
3153
2913
  (yyval.blk) = (yyvsp[0].blk);
3154
2914
  }
3155
- #line 3156 "src/parser.c"
2915
+ #line 2916 "src/parser.c"
3156
2916
  break;
3157
2917
 
3158
- case 57: /* Params: Params ';' Param */
3159
- #line 555 "src/parser.y"
2918
+ case 48: /* Params: Params ';' Param */
2919
+ #line 490 "src/parser.y"
3160
2920
  {
3161
2921
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3162
2922
  }
3163
- #line 3164 "src/parser.c"
2923
+ #line 2924 "src/parser.c"
3164
2924
  break;
3165
2925
 
3166
- case 58: /* Param: BINDING */
3167
- #line 560 "src/parser.y"
2926
+ case 49: /* Param: BINDING */
2927
+ #line 495 "src/parser.y"
3168
2928
  {
3169
2929
  (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal)));
3170
2930
  jv_free((yyvsp[0].literal));
3171
2931
  }
3172
- #line 3173 "src/parser.c"
2932
+ #line 2933 "src/parser.c"
3173
2933
  break;
3174
2934
 
3175
- case 59: /* Param: IDENT */
3176
- #line 564 "src/parser.y"
2935
+ case 50: /* Param: IDENT */
2936
+ #line 499 "src/parser.y"
3177
2937
  {
3178
2938
  (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal)));
3179
2939
  jv_free((yyvsp[0].literal));
3180
2940
  }
3181
- #line 3182 "src/parser.c"
2941
+ #line 2942 "src/parser.c"
3182
2942
  break;
3183
2943
 
3184
- case 60: /* StringStart: FORMAT QQSTRING_START */
3185
- #line 571 "src/parser.y"
2944
+ case 51: /* StringStart: FORMAT QQSTRING_START */
2945
+ #line 506 "src/parser.y"
3186
2946
  {
3187
2947
  (yyval.literal) = (yyvsp[-1].literal);
3188
2948
  }
3189
- #line 3190 "src/parser.c"
2949
+ #line 2950 "src/parser.c"
3190
2950
  break;
3191
2951
 
3192
- case 61: /* StringStart: QQSTRING_START */
3193
- #line 574 "src/parser.y"
2952
+ case 52: /* StringStart: QQSTRING_START */
2953
+ #line 509 "src/parser.y"
3194
2954
  {
3195
2955
  (yyval.literal) = jv_string("text");
3196
2956
  }
3197
- #line 3198 "src/parser.c"
2957
+ #line 2958 "src/parser.c"
3198
2958
  break;
3199
2959
 
3200
- case 62: /* String: StringStart QQString QQSTRING_END */
3201
- #line 580 "src/parser.y"
2960
+ case 53: /* String: StringStart QQString QQSTRING_END */
2961
+ #line 515 "src/parser.y"
3202
2962
  {
3203
2963
  (yyval.blk) = (yyvsp[-1].blk);
3204
2964
  jv_free((yyvsp[-2].literal));
3205
2965
  }
3206
- #line 3207 "src/parser.c"
2966
+ #line 2967 "src/parser.c"
3207
2967
  break;
3208
2968
 
3209
- case 63: /* QQString: %empty */
3210
- #line 587 "src/parser.y"
2969
+ case 54: /* QQString: %empty */
2970
+ #line 522 "src/parser.y"
3211
2971
  {
3212
2972
  (yyval.blk) = gen_const(jv_string(""));
3213
2973
  }
3214
- #line 3215 "src/parser.c"
2974
+ #line 2975 "src/parser.c"
3215
2975
  break;
3216
2976
 
3217
- case 64: /* QQString: QQString QQSTRING_TEXT */
3218
- #line 590 "src/parser.y"
2977
+ case 55: /* QQString: QQString QQSTRING_TEXT */
2978
+ #line 525 "src/parser.y"
3219
2979
  {
3220
2980
  (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+');
3221
2981
  }
3222
- #line 3223 "src/parser.c"
2982
+ #line 2983 "src/parser.c"
3223
2983
  break;
3224
2984
 
3225
- case 65: /* QQString: QQString QQSTRING_INTERP_START Exp QQSTRING_INTERP_END */
3226
- #line 593 "src/parser.y"
3227
- {
2985
+ case 56: /* QQString: QQString QQSTRING_INTERP_START Query QQSTRING_INTERP_END */
2986
+ #line 528 "src/parser.y"
2987
+ {
3228
2988
  (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+');
3229
2989
  }
3230
- #line 3231 "src/parser.c"
2990
+ #line 2991 "src/parser.c"
3231
2991
  break;
3232
2992
 
3233
- case 66: /* ElseBody: "elif" Exp "then" Exp ElseBody */
3234
- #line 599 "src/parser.y"
3235
- {
2993
+ case 57: /* ElseBody: "elif" Query "then" Query ElseBody */
2994
+ #line 534 "src/parser.y"
2995
+ {
3236
2996
  (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
3237
2997
  }
3238
- #line 3239 "src/parser.c"
2998
+ #line 2999 "src/parser.c"
3239
2999
  break;
3240
3000
 
3241
- case 67: /* ElseBody: "else" Exp "end" */
3242
- #line 602 "src/parser.y"
3243
- {
3001
+ case 58: /* ElseBody: "else" Query "end" */
3002
+ #line 537 "src/parser.y"
3003
+ {
3244
3004
  (yyval.blk) = (yyvsp[-1].blk);
3245
3005
  }
3246
- #line 3247 "src/parser.c"
3006
+ #line 3007 "src/parser.c"
3247
3007
  break;
3248
3008
 
3249
- case 68: /* ElseBody: "end" */
3250
- #line 605 "src/parser.y"
3009
+ case 59: /* ElseBody: "end" */
3010
+ #line 540 "src/parser.y"
3251
3011
  {
3252
3012
  (yyval.blk) = gen_noop();
3253
3013
  }
3254
- #line 3255 "src/parser.c"
3255
- break;
3256
-
3257
- case 69: /* ExpD: ExpD '|' ExpD */
3258
- #line 610 "src/parser.y"
3259
- {
3260
- (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
3261
- }
3262
- #line 3263 "src/parser.c"
3014
+ #line 3015 "src/parser.c"
3263
3015
  break;
3264
3016
 
3265
- case 70: /* ExpD: '-' ExpD */
3266
- #line 613 "src/parser.y"
3267
- {
3268
- (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
3269
- }
3270
- #line 3271 "src/parser.c"
3271
- break;
3272
-
3273
- case 71: /* ExpD: Term */
3274
- #line 616 "src/parser.y"
3275
- {
3276
- (yyval.blk) = (yyvsp[0].blk);
3277
- }
3278
- #line 3279 "src/parser.c"
3279
- break;
3280
-
3281
- case 72: /* Term: '.' */
3282
- #line 622 "src/parser.y"
3017
+ case 60: /* Term: '.' */
3018
+ #line 546 "src/parser.y"
3283
3019
  {
3284
3020
  (yyval.blk) = gen_noop();
3285
3021
  }
3286
- #line 3287 "src/parser.c"
3022
+ #line 3023 "src/parser.c"
3287
3023
  break;
3288
3024
 
3289
- case 73: /* Term: ".." */
3290
- #line 625 "src/parser.y"
3025
+ case 61: /* Term: ".." */
3026
+ #line 549 "src/parser.y"
3291
3027
  {
3292
3028
  (yyval.blk) = gen_call("recurse", gen_noop());
3293
3029
  }
3294
- #line 3295 "src/parser.c"
3030
+ #line 3031 "src/parser.c"
3295
3031
  break;
3296
3032
 
3297
- case 74: /* Term: "break" BINDING */
3298
- #line 628 "src/parser.y"
3033
+ case 62: /* Term: "break" BINDING */
3034
+ #line 552 "src/parser.y"
3299
3035
  {
3300
3036
  jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol
3301
3037
  (yyval.blk) = gen_location((yyloc), locations,
@@ -3304,301 +3040,383 @@ yyreduce:
3304
3040
  jv_free(v);
3305
3041
  jv_free((yyvsp[0].literal));
3306
3042
  }
3307
- #line 3308 "src/parser.c"
3043
+ #line 3044 "src/parser.c"
3308
3044
  break;
3309
3045
 
3310
- case 75: /* Term: "break" error */
3311
- #line 636 "src/parser.y"
3046
+ case 63: /* Term: "break" error */
3047
+ #line 560 "src/parser.y"
3312
3048
  {
3313
3049
  FAIL((yyloc), "break requires a label to break to");
3314
3050
  (yyval.blk) = gen_noop();
3315
3051
  }
3316
- #line 3317 "src/parser.c"
3052
+ #line 3053 "src/parser.c"
3317
3053
  break;
3318
3054
 
3319
- case 76: /* Term: Term FIELD '?' */
3320
- #line 640 "src/parser.y"
3055
+ case 64: /* Term: Term FIELD '?' */
3056
+ #line 564 "src/parser.y"
3321
3057
  {
3322
3058
  (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal)));
3323
3059
  }
3324
- #line 3325 "src/parser.c"
3060
+ #line 3061 "src/parser.c"
3325
3061
  break;
3326
3062
 
3327
- case 77: /* Term: FIELD '?' */
3328
- #line 643 "src/parser.y"
3063
+ case 65: /* Term: FIELD '?' */
3064
+ #line 567 "src/parser.y"
3329
3065
  {
3330
3066
  (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal)));
3331
3067
  }
3332
- #line 3333 "src/parser.c"
3068
+ #line 3069 "src/parser.c"
3333
3069
  break;
3334
3070
 
3335
- case 78: /* Term: Term '.' String '?' */
3336
- #line 646 "src/parser.y"
3071
+ case 66: /* Term: Term '.' String '?' */
3072
+ #line 570 "src/parser.y"
3337
3073
  {
3338
3074
  (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk));
3339
3075
  }
3340
- #line 3341 "src/parser.c"
3076
+ #line 3077 "src/parser.c"
3341
3077
  break;
3342
3078
 
3343
- case 79: /* Term: '.' String '?' */
3344
- #line 649 "src/parser.y"
3079
+ case 67: /* Term: '.' String '?' */
3080
+ #line 573 "src/parser.y"
3345
3081
  {
3346
3082
  (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk));
3347
3083
  }
3348
- #line 3349 "src/parser.c"
3084
+ #line 3085 "src/parser.c"
3349
3085
  break;
3350
3086
 
3351
- case 80: /* Term: Term FIELD */
3352
- #line 652 "src/parser.y"
3087
+ case 68: /* Term: Term FIELD */
3088
+ #line 576 "src/parser.y"
3353
3089
  {
3354
3090
  (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal)));
3355
3091
  }
3356
- #line 3357 "src/parser.c"
3092
+ #line 3093 "src/parser.c"
3357
3093
  break;
3358
3094
 
3359
- case 81: /* Term: FIELD */
3360
- #line 655 "src/parser.y"
3095
+ case 69: /* Term: FIELD */
3096
+ #line 579 "src/parser.y"
3361
3097
  {
3362
3098
  (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal)));
3363
3099
  }
3364
- #line 3365 "src/parser.c"
3100
+ #line 3101 "src/parser.c"
3365
3101
  break;
3366
3102
 
3367
- case 82: /* Term: Term '.' String */
3368
- #line 658 "src/parser.y"
3103
+ case 70: /* Term: Term '.' String */
3104
+ #line 582 "src/parser.y"
3369
3105
  {
3370
3106
  (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk));
3371
3107
  }
3372
- #line 3373 "src/parser.c"
3108
+ #line 3109 "src/parser.c"
3373
3109
  break;
3374
3110
 
3375
- case 83: /* Term: '.' String */
3376
- #line 661 "src/parser.y"
3111
+ case 71: /* Term: '.' String */
3112
+ #line 585 "src/parser.y"
3377
3113
  {
3378
3114
  (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk));
3379
3115
  }
3380
- #line 3381 "src/parser.c"
3116
+ #line 3117 "src/parser.c"
3381
3117
  break;
3382
3118
 
3383
- case 84: /* Term: '.' error */
3384
- #line 664 "src/parser.y"
3119
+ case 72: /* Term: '.' error */
3120
+ #line 588 "src/parser.y"
3385
3121
  {
3386
3122
  FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
3387
3123
  (yyval.blk) = gen_noop();
3388
3124
  }
3389
- #line 3390 "src/parser.c"
3125
+ #line 3126 "src/parser.c"
3390
3126
  break;
3391
3127
 
3392
- case 85: /* Term: '.' IDENT error */
3393
- #line 668 "src/parser.y"
3128
+ case 73: /* Term: '.' IDENT error */
3129
+ #line 592 "src/parser.y"
3394
3130
  {
3395
3131
  jv_free((yyvsp[-1].literal));
3396
3132
  FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
3397
3133
  (yyval.blk) = gen_noop();
3398
3134
  }
3399
- #line 3400 "src/parser.c"
3135
+ #line 3136 "src/parser.c"
3400
3136
  break;
3401
3137
 
3402
- case 86: /* Term: Term '[' Exp ']' '?' */
3403
- #line 674 "src/parser.y"
3404
- {
3138
+ case 74: /* Term: Term '[' Query ']' '?' */
3139
+ #line 598 "src/parser.y"
3140
+ {
3405
3141
  (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk));
3406
3142
  }
3407
- #line 3408 "src/parser.c"
3143
+ #line 3144 "src/parser.c"
3408
3144
  break;
3409
3145
 
3410
- case 87: /* Term: Term '[' Exp ']' */
3411
- #line 677 "src/parser.y"
3412
- {
3146
+ case 75: /* Term: Term '[' Query ']' */
3147
+ #line 601 "src/parser.y"
3148
+ {
3413
3149
  (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk));
3414
3150
  }
3415
- #line 3416 "src/parser.c"
3151
+ #line 3152 "src/parser.c"
3416
3152
  break;
3417
3153
 
3418
- case 88: /* Term: Term '.' '[' Exp ']' '?' */
3419
- #line 680 "src/parser.y"
3420
- {
3154
+ case 76: /* Term: Term '.' '[' Query ']' '?' */
3155
+ #line 604 "src/parser.y"
3156
+ {
3421
3157
  (yyval.blk) = gen_index_opt((yyvsp[-5].blk), (yyvsp[-2].blk));
3422
3158
  }
3423
- #line 3424 "src/parser.c"
3159
+ #line 3160 "src/parser.c"
3424
3160
  break;
3425
3161
 
3426
- case 89: /* Term: Term '.' '[' Exp ']' */
3427
- #line 683 "src/parser.y"
3428
- {
3162
+ case 77: /* Term: Term '.' '[' Query ']' */
3163
+ #line 607 "src/parser.y"
3164
+ {
3429
3165
  (yyval.blk) = gen_index((yyvsp[-4].blk), (yyvsp[-1].blk));
3430
3166
  }
3431
- #line 3432 "src/parser.c"
3167
+ #line 3168 "src/parser.c"
3432
3168
  break;
3433
3169
 
3434
- case 90: /* Term: Term '[' ']' '?' */
3435
- #line 686 "src/parser.y"
3170
+ case 78: /* Term: Term '[' ']' '?' */
3171
+ #line 610 "src/parser.y"
3436
3172
  {
3437
3173
  (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT));
3438
3174
  }
3439
- #line 3440 "src/parser.c"
3175
+ #line 3176 "src/parser.c"
3440
3176
  break;
3441
3177
 
3442
- case 91: /* Term: Term '[' ']' */
3443
- #line 689 "src/parser.y"
3178
+ case 79: /* Term: Term '[' ']' */
3179
+ #line 613 "src/parser.y"
3444
3180
  {
3445
3181
  (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH));
3446
3182
  }
3447
- #line 3448 "src/parser.c"
3183
+ #line 3184 "src/parser.c"
3448
3184
  break;
3449
3185
 
3450
- case 92: /* Term: Term '.' '[' ']' '?' */
3451
- #line 692 "src/parser.y"
3186
+ case 80: /* Term: Term '.' '[' ']' '?' */
3187
+ #line 616 "src/parser.y"
3452
3188
  {
3453
3189
  (yyval.blk) = block_join((yyvsp[-4].blk), gen_op_simple(EACH_OPT));
3454
3190
  }
3455
- #line 3456 "src/parser.c"
3191
+ #line 3192 "src/parser.c"
3456
3192
  break;
3457
3193
 
3458
- case 93: /* Term: Term '.' '[' ']' */
3459
- #line 695 "src/parser.y"
3194
+ case 81: /* Term: Term '.' '[' ']' */
3195
+ #line 619 "src/parser.y"
3460
3196
  {
3461
3197
  (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH));
3462
3198
  }
3463
- #line 3464 "src/parser.c"
3199
+ #line 3200 "src/parser.c"
3464
3200
  break;
3465
3201
 
3466
- case 94: /* Term: Term '[' Exp ':' Exp ']' '?' */
3467
- #line 698 "src/parser.y"
3468
- {
3202
+ case 82: /* Term: Term '[' Query ':' Query ']' '?' */
3203
+ #line 622 "src/parser.y"
3204
+ {
3469
3205
  (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT);
3470
3206
  }
3471
- #line 3472 "src/parser.c"
3207
+ #line 3208 "src/parser.c"
3472
3208
  break;
3473
3209
 
3474
- case 95: /* Term: Term '[' Exp ':' ']' '?' */
3475
- #line 701 "src/parser.y"
3476
- {
3210
+ case 83: /* Term: Term '[' Query ':' ']' '?' */
3211
+ #line 625 "src/parser.y"
3212
+ {
3477
3213
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT);
3478
3214
  }
3479
- #line 3480 "src/parser.c"
3215
+ #line 3216 "src/parser.c"
3480
3216
  break;
3481
3217
 
3482
- case 96: /* Term: Term '[' ':' Exp ']' '?' */
3483
- #line 704 "src/parser.y"
3484
- {
3218
+ case 84: /* Term: Term '[' ':' Query ']' '?' */
3219
+ #line 628 "src/parser.y"
3220
+ {
3485
3221
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT);
3486
3222
  }
3487
- #line 3488 "src/parser.c"
3223
+ #line 3224 "src/parser.c"
3488
3224
  break;
3489
3225
 
3490
- case 97: /* Term: Term '[' Exp ':' Exp ']' */
3491
- #line 707 "src/parser.y"
3492
- {
3226
+ case 85: /* Term: Term '[' Query ':' Query ']' */
3227
+ #line 631 "src/parser.y"
3228
+ {
3493
3229
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX);
3494
3230
  }
3495
- #line 3496 "src/parser.c"
3231
+ #line 3232 "src/parser.c"
3496
3232
  break;
3497
3233
 
3498
- case 98: /* Term: Term '[' Exp ':' ']' */
3499
- #line 710 "src/parser.y"
3500
- {
3234
+ case 86: /* Term: Term '[' Query ':' ']' */
3235
+ #line 634 "src/parser.y"
3236
+ {
3501
3237
  (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX);
3502
3238
  }
3503
- #line 3504 "src/parser.c"
3239
+ #line 3240 "src/parser.c"
3504
3240
  break;
3505
3241
 
3506
- case 99: /* Term: Term '[' ':' Exp ']' */
3507
- #line 713 "src/parser.y"
3508
- {
3242
+ case 87: /* Term: Term '[' ':' Query ']' */
3243
+ #line 637 "src/parser.y"
3244
+ {
3509
3245
  (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX);
3510
3246
  }
3511
- #line 3512 "src/parser.c"
3247
+ #line 3248 "src/parser.c"
3512
3248
  break;
3513
3249
 
3514
- case 100: /* Term: LITERAL */
3515
- #line 716 "src/parser.y"
3250
+ case 88: /* Term: Term '?' */
3251
+ #line 640 "src/parser.y"
3252
+ {
3253
+ (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK));
3254
+ }
3255
+ #line 3256 "src/parser.c"
3256
+ break;
3257
+
3258
+ case 89: /* Term: LITERAL */
3259
+ #line 643 "src/parser.y"
3516
3260
  {
3517
3261
  (yyval.blk) = gen_const((yyvsp[0].literal));
3518
3262
  }
3519
- #line 3520 "src/parser.c"
3263
+ #line 3264 "src/parser.c"
3520
3264
  break;
3521
3265
 
3522
- case 101: /* Term: String */
3523
- #line 719 "src/parser.y"
3266
+ case 90: /* Term: String */
3267
+ #line 646 "src/parser.y"
3524
3268
  {
3525
3269
  (yyval.blk) = (yyvsp[0].blk);
3526
3270
  }
3527
- #line 3528 "src/parser.c"
3271
+ #line 3272 "src/parser.c"
3528
3272
  break;
3529
3273
 
3530
- case 102: /* Term: FORMAT */
3531
- #line 722 "src/parser.y"
3274
+ case 91: /* Term: FORMAT */
3275
+ #line 649 "src/parser.y"
3532
3276
  {
3533
3277
  (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal));
3534
3278
  }
3535
- #line 3536 "src/parser.c"
3279
+ #line 3280 "src/parser.c"
3536
3280
  break;
3537
3281
 
3538
- case 103: /* Term: '(' Exp ')' */
3539
- #line 725 "src/parser.y"
3540
- {
3282
+ case 92: /* Term: '-' Term */
3283
+ #line 652 "src/parser.y"
3284
+ {
3285
+ (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
3286
+ }
3287
+ #line 3288 "src/parser.c"
3288
+ break;
3289
+
3290
+ case 93: /* Term: '(' Query ')' */
3291
+ #line 655 "src/parser.y"
3292
+ {
3541
3293
  (yyval.blk) = (yyvsp[-1].blk);
3542
3294
  }
3543
- #line 3544 "src/parser.c"
3295
+ #line 3296 "src/parser.c"
3544
3296
  break;
3545
3297
 
3546
- case 104: /* Term: '[' Exp ']' */
3547
- #line 728 "src/parser.y"
3548
- {
3298
+ case 94: /* Term: '[' Query ']' */
3299
+ #line 658 "src/parser.y"
3300
+ {
3549
3301
  (yyval.blk) = gen_collect((yyvsp[-1].blk));
3550
3302
  }
3551
- #line 3552 "src/parser.c"
3303
+ #line 3304 "src/parser.c"
3552
3304
  break;
3553
3305
 
3554
- case 105: /* Term: '[' ']' */
3555
- #line 731 "src/parser.y"
3306
+ case 95: /* Term: '[' ']' */
3307
+ #line 661 "src/parser.y"
3556
3308
  {
3557
3309
  (yyval.blk) = gen_const(jv_array());
3558
3310
  }
3559
- #line 3560 "src/parser.c"
3311
+ #line 3312 "src/parser.c"
3560
3312
  break;
3561
3313
 
3562
- case 106: /* Term: '{' MkDict '}' */
3563
- #line 734 "src/parser.y"
3564
- {
3314
+ case 96: /* Term: '{' DictPairs '}' */
3315
+ #line 664 "src/parser.y"
3316
+ {
3565
3317
  block o = gen_const_object((yyvsp[-1].blk));
3566
3318
  if (o.first != NULL)
3567
3319
  (yyval.blk) = o;
3568
3320
  else
3569
3321
  (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP));
3570
3322
  }
3571
- #line 3572 "src/parser.c"
3323
+ #line 3324 "src/parser.c"
3324
+ break;
3325
+
3326
+ case 97: /* Term: "reduce" Expr "as" Patterns '(' Query ';' Query ')' */
3327
+ #line 671 "src/parser.y"
3328
+ {
3329
+ (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
3330
+ }
3331
+ #line 3332 "src/parser.c"
3332
+ break;
3333
+
3334
+ case 98: /* Term: "foreach" Expr "as" Patterns '(' Query ';' Query ';' Query ')' */
3335
+ #line 674 "src/parser.y"
3336
+ {
3337
+ (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
3338
+ }
3339
+ #line 3340 "src/parser.c"
3340
+ break;
3341
+
3342
+ case 99: /* Term: "foreach" Expr "as" Patterns '(' Query ';' Query ')' */
3343
+ #line 677 "src/parser.y"
3344
+ {
3345
+ (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
3346
+ }
3347
+ #line 3348 "src/parser.c"
3348
+ break;
3349
+
3350
+ case 100: /* Term: "if" Query "then" Query ElseBody */
3351
+ #line 680 "src/parser.y"
3352
+ {
3353
+ (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
3354
+ }
3355
+ #line 3356 "src/parser.c"
3356
+ break;
3357
+
3358
+ case 101: /* Term: "if" Query "then" error */
3359
+ #line 683 "src/parser.y"
3360
+ {
3361
+ FAIL((yyloc), "Possibly unterminated 'if' statement");
3362
+ (yyval.blk) = (yyvsp[-2].blk);
3363
+ }
3364
+ #line 3365 "src/parser.c"
3365
+ break;
3366
+
3367
+ case 102: /* Term: "try" Expr "catch" Expr */
3368
+ #line 687 "src/parser.y"
3369
+ {
3370
+ (yyval.blk) = gen_try((yyvsp[-2].blk), (yyvsp[0].blk));
3371
+ }
3372
+ #line 3373 "src/parser.c"
3373
+ break;
3374
+
3375
+ case 103: /* Term: "try" Expr "catch" error */
3376
+ #line 690 "src/parser.y"
3377
+ {
3378
+ FAIL((yyloc), "Possibly unterminated 'try' statement");
3379
+ (yyval.blk) = (yyvsp[-2].blk);
3380
+ }
3381
+ #line 3382 "src/parser.c"
3572
3382
  break;
3573
3383
 
3574
- case 107: /* Term: '$' '$' '$' BINDING */
3575
- #line 756 "src/parser.y"
3384
+ case 104: /* Term: "try" Expr */
3385
+ #line 694 "src/parser.y"
3386
+ {
3387
+ (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK));
3388
+ }
3389
+ #line 3390 "src/parser.c"
3390
+ break;
3391
+
3392
+ case 105: /* Term: '$' '$' '$' BINDING */
3393
+ #line 712 "src/parser.y"
3576
3394
  {
3577
3395
  (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADVN, jv_string_value((yyvsp[0].literal))));
3578
3396
  jv_free((yyvsp[0].literal));
3579
3397
  }
3580
- #line 3581 "src/parser.c"
3398
+ #line 3399 "src/parser.c"
3581
3399
  break;
3582
3400
 
3583
- case 108: /* Term: BINDING */
3584
- #line 760 "src/parser.y"
3401
+ case 106: /* Term: BINDING */
3402
+ #line 716 "src/parser.y"
3585
3403
  {
3586
3404
  (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))));
3587
3405
  jv_free((yyvsp[0].literal));
3588
3406
  }
3589
- #line 3590 "src/parser.c"
3407
+ #line 3408 "src/parser.c"
3590
3408
  break;
3591
3409
 
3592
- case 109: /* Term: "$__loc__" */
3593
- #line 764 "src/parser.y"
3410
+ case 107: /* Term: "$__loc__" */
3411
+ #line 720 "src/parser.y"
3594
3412
  {
3595
3413
  (yyval.blk) = gen_loc_object(&(yyloc), locations);
3596
3414
  }
3597
- #line 3598 "src/parser.c"
3415
+ #line 3416 "src/parser.c"
3598
3416
  break;
3599
3417
 
3600
- case 110: /* Term: IDENT */
3601
- #line 767 "src/parser.y"
3418
+ case 108: /* Term: IDENT */
3419
+ #line 723 "src/parser.y"
3602
3420
  {
3603
3421
  const char *s = jv_string_value((yyvsp[0].literal));
3604
3422
  if (strcmp(s, "false") == 0)
@@ -3611,491 +3429,505 @@ yyreduce:
3611
3429
  (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop()));
3612
3430
  jv_free((yyvsp[0].literal));
3613
3431
  }
3614
- #line 3615 "src/parser.c"
3432
+ #line 3433 "src/parser.c"
3615
3433
  break;
3616
3434
 
3617
- case 111: /* Term: IDENT '(' Args ')' */
3618
- #line 779 "src/parser.y"
3435
+ case 109: /* Term: IDENT '(' Args ')' */
3436
+ #line 735 "src/parser.y"
3619
3437
  {
3620
3438
  (yyval.blk) = gen_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk));
3621
3439
  (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk));
3622
3440
  jv_free((yyvsp[-3].literal));
3623
3441
  }
3624
- #line 3625 "src/parser.c"
3442
+ #line 3443 "src/parser.c"
3625
3443
  break;
3626
3444
 
3627
- case 112: /* Term: '(' error ')' */
3628
- #line 784 "src/parser.y"
3445
+ case 110: /* Term: '(' error ')' */
3446
+ #line 740 "src/parser.y"
3629
3447
  { (yyval.blk) = gen_noop(); }
3630
- #line 3631 "src/parser.c"
3448
+ #line 3449 "src/parser.c"
3631
3449
  break;
3632
3450
 
3633
- case 113: /* Term: '[' error ']' */
3634
- #line 785 "src/parser.y"
3451
+ case 111: /* Term: '[' error ']' */
3452
+ #line 741 "src/parser.y"
3635
3453
  { (yyval.blk) = gen_noop(); }
3636
- #line 3637 "src/parser.c"
3454
+ #line 3455 "src/parser.c"
3637
3455
  break;
3638
3456
 
3639
- case 114: /* Term: Term '[' error ']' */
3640
- #line 786 "src/parser.y"
3457
+ case 112: /* Term: Term '[' error ']' */
3458
+ #line 742 "src/parser.y"
3641
3459
  { (yyval.blk) = (yyvsp[-3].blk); }
3642
- #line 3643 "src/parser.c"
3460
+ #line 3461 "src/parser.c"
3643
3461
  break;
3644
3462
 
3645
- case 115: /* Term: '{' error '}' */
3646
- #line 787 "src/parser.y"
3463
+ case 113: /* Term: '{' error '}' */
3464
+ #line 743 "src/parser.y"
3647
3465
  { (yyval.blk) = gen_noop(); }
3648
- #line 3649 "src/parser.c"
3466
+ #line 3467 "src/parser.c"
3649
3467
  break;
3650
3468
 
3651
- case 116: /* Args: Arg */
3652
- #line 790 "src/parser.y"
3469
+ case 114: /* Args: Arg */
3470
+ #line 746 "src/parser.y"
3653
3471
  {
3654
3472
  (yyval.blk) = (yyvsp[0].blk);
3655
3473
  }
3656
- #line 3657 "src/parser.c"
3474
+ #line 3475 "src/parser.c"
3657
3475
  break;
3658
3476
 
3659
- case 117: /* Args: Args ';' Arg */
3660
- #line 793 "src/parser.y"
3477
+ case 115: /* Args: Args ';' Arg */
3478
+ #line 749 "src/parser.y"
3661
3479
  {
3662
3480
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3663
3481
  }
3664
- #line 3665 "src/parser.c"
3482
+ #line 3483 "src/parser.c"
3665
3483
  break;
3666
3484
 
3667
- case 118: /* Arg: Exp */
3668
- #line 798 "src/parser.y"
3669
- {
3485
+ case 116: /* Arg: Query */
3486
+ #line 754 "src/parser.y"
3487
+ {
3670
3488
  (yyval.blk) = gen_lambda((yyvsp[0].blk));
3671
3489
  }
3672
- #line 3673 "src/parser.c"
3490
+ #line 3491 "src/parser.c"
3673
3491
  break;
3674
3492
 
3675
- case 119: /* RepPatterns: RepPatterns "?//" Pattern */
3676
- #line 803 "src/parser.y"
3493
+ case 117: /* RepPatterns: RepPatterns "?//" Pattern */
3494
+ #line 759 "src/parser.y"
3677
3495
  {
3678
3496
  (yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk)));
3679
3497
  }
3680
- #line 3681 "src/parser.c"
3498
+ #line 3499 "src/parser.c"
3681
3499
  break;
3682
3500
 
3683
- case 120: /* RepPatterns: Pattern */
3684
- #line 806 "src/parser.y"
3501
+ case 118: /* RepPatterns: Pattern */
3502
+ #line 762 "src/parser.y"
3685
3503
  {
3686
3504
  (yyval.blk) = gen_destructure_alt((yyvsp[0].blk));
3687
3505
  }
3688
- #line 3689 "src/parser.c"
3506
+ #line 3507 "src/parser.c"
3689
3507
  break;
3690
3508
 
3691
- case 121: /* Patterns: RepPatterns "?//" Pattern */
3692
- #line 811 "src/parser.y"
3509
+ case 119: /* Patterns: RepPatterns "?//" Pattern */
3510
+ #line 767 "src/parser.y"
3693
3511
  {
3694
3512
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3695
3513
  }
3696
- #line 3697 "src/parser.c"
3514
+ #line 3515 "src/parser.c"
3697
3515
  break;
3698
3516
 
3699
- case 122: /* Patterns: Pattern */
3700
- #line 814 "src/parser.y"
3517
+ case 120: /* Patterns: Pattern */
3518
+ #line 770 "src/parser.y"
3701
3519
  {
3702
3520
  (yyval.blk) = (yyvsp[0].blk);
3703
3521
  }
3704
- #line 3705 "src/parser.c"
3522
+ #line 3523 "src/parser.c"
3705
3523
  break;
3706
3524
 
3707
- case 123: /* Pattern: BINDING */
3708
- #line 819 "src/parser.y"
3525
+ case 121: /* Pattern: BINDING */
3526
+ #line 775 "src/parser.y"
3709
3527
  {
3710
3528
  (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)));
3711
3529
  jv_free((yyvsp[0].literal));
3712
3530
  }
3713
- #line 3714 "src/parser.c"
3531
+ #line 3532 "src/parser.c"
3714
3532
  break;
3715
3533
 
3716
- case 124: /* Pattern: '[' ArrayPats ']' */
3717
- #line 823 "src/parser.y"
3534
+ case 122: /* Pattern: '[' ArrayPats ']' */
3535
+ #line 779 "src/parser.y"
3718
3536
  {
3719
3537
  (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
3720
3538
  }
3721
- #line 3722 "src/parser.c"
3539
+ #line 3540 "src/parser.c"
3722
3540
  break;
3723
3541
 
3724
- case 125: /* Pattern: '{' ObjPats '}' */
3725
- #line 826 "src/parser.y"
3542
+ case 123: /* Pattern: '{' ObjPats '}' */
3543
+ #line 782 "src/parser.y"
3726
3544
  {
3727
3545
  (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
3728
3546
  }
3729
- #line 3730 "src/parser.c"
3547
+ #line 3548 "src/parser.c"
3730
3548
  break;
3731
3549
 
3732
- case 126: /* ArrayPats: Pattern */
3733
- #line 831 "src/parser.y"
3550
+ case 124: /* ArrayPats: Pattern */
3551
+ #line 787 "src/parser.y"
3734
3552
  {
3735
3553
  (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk));
3736
3554
  }
3737
- #line 3738 "src/parser.c"
3555
+ #line 3556 "src/parser.c"
3738
3556
  break;
3739
3557
 
3740
- case 127: /* ArrayPats: ArrayPats ',' Pattern */
3741
- #line 834 "src/parser.y"
3558
+ case 125: /* ArrayPats: ArrayPats ',' Pattern */
3559
+ #line 790 "src/parser.y"
3742
3560
  {
3743
3561
  (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
3744
3562
  }
3745
- #line 3746 "src/parser.c"
3563
+ #line 3564 "src/parser.c"
3746
3564
  break;
3747
3565
 
3748
- case 128: /* ObjPats: ObjPat */
3749
- #line 839 "src/parser.y"
3566
+ case 126: /* ObjPats: ObjPat */
3567
+ #line 795 "src/parser.y"
3750
3568
  {
3751
3569
  (yyval.blk) = (yyvsp[0].blk);
3752
3570
  }
3753
- #line 3754 "src/parser.c"
3571
+ #line 3572 "src/parser.c"
3754
3572
  break;
3755
3573
 
3756
- case 129: /* ObjPats: ObjPats ',' ObjPat */
3757
- #line 842 "src/parser.y"
3574
+ case 127: /* ObjPats: ObjPats ',' ObjPat */
3575
+ #line 798 "src/parser.y"
3758
3576
  {
3759
3577
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3760
3578
  }
3761
- #line 3762 "src/parser.c"
3579
+ #line 3580 "src/parser.c"
3762
3580
  break;
3763
3581
 
3764
- case 130: /* ObjPat: BINDING */
3765
- #line 847 "src/parser.y"
3582
+ case 128: /* ObjPat: BINDING */
3583
+ #line 803 "src/parser.y"
3766
3584
  {
3767
3585
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))));
3768
3586
  }
3769
- #line 3770 "src/parser.c"
3587
+ #line 3588 "src/parser.c"
3770
3588
  break;
3771
3589
 
3772
- case 131: /* ObjPat: BINDING ':' Pattern */
3773
- #line 850 "src/parser.y"
3590
+ case 129: /* ObjPat: BINDING ':' Pattern */
3591
+ #line 806 "src/parser.y"
3774
3592
  {
3775
3593
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), BLOCK(gen_op_simple(DUP), gen_op_unbound(STOREV, jv_string_value((yyvsp[-2].literal))), (yyvsp[0].blk)));
3776
3594
  }
3777
- #line 3778 "src/parser.c"
3595
+ #line 3596 "src/parser.c"
3778
3596
  break;
3779
3597
 
3780
- case 132: /* ObjPat: IDENT ':' Pattern */
3781
- #line 853 "src/parser.y"
3598
+ case 130: /* ObjPat: IDENT ':' Pattern */
3599
+ #line 809 "src/parser.y"
3782
3600
  {
3783
3601
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3784
3602
  }
3785
- #line 3786 "src/parser.c"
3603
+ #line 3604 "src/parser.c"
3786
3604
  break;
3787
3605
 
3788
- case 133: /* ObjPat: Keyword ':' Pattern */
3789
- #line 856 "src/parser.y"
3606
+ case 131: /* ObjPat: Keyword ':' Pattern */
3607
+ #line 812 "src/parser.y"
3790
3608
  {
3791
3609
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3792
3610
  }
3793
- #line 3794 "src/parser.c"
3611
+ #line 3612 "src/parser.c"
3794
3612
  break;
3795
3613
 
3796
- case 134: /* ObjPat: String ':' Pattern */
3797
- #line 859 "src/parser.y"
3614
+ case 132: /* ObjPat: String ':' Pattern */
3615
+ #line 815 "src/parser.y"
3798
3616
  {
3799
3617
  (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
3800
3618
  }
3801
- #line 3802 "src/parser.c"
3619
+ #line 3620 "src/parser.c"
3802
3620
  break;
3803
3621
 
3804
- case 135: /* ObjPat: '(' Exp ')' ':' Pattern */
3805
- #line 862 "src/parser.y"
3806
- {
3622
+ case 133: /* ObjPat: '(' Query ')' ':' Pattern */
3623
+ #line 818 "src/parser.y"
3624
+ {
3807
3625
  jv msg = check_object_key((yyvsp[-3].blk));
3808
3626
  if (jv_is_valid(msg)) {
3809
- FAIL((yyloc), jv_string_value(msg));
3627
+ FAIL((yylsp[-3]), jv_string_value(msg));
3810
3628
  }
3811
3629
  jv_free(msg);
3812
3630
  (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk));
3813
3631
  }
3814
- #line 3815 "src/parser.c"
3632
+ #line 3633 "src/parser.c"
3815
3633
  break;
3816
3634
 
3817
- case 136: /* ObjPat: error ':' Pattern */
3818
- #line 870 "src/parser.y"
3635
+ case 134: /* ObjPat: error ':' Pattern */
3636
+ #line 826 "src/parser.y"
3819
3637
  {
3820
3638
  FAIL((yyloc), "May need parentheses around object key expression");
3821
3639
  (yyval.blk) = (yyvsp[0].blk);
3822
3640
  }
3823
- #line 3824 "src/parser.c"
3641
+ #line 3642 "src/parser.c"
3824
3642
  break;
3825
3643
 
3826
- case 137: /* Keyword: "as" */
3827
- #line 876 "src/parser.y"
3644
+ case 135: /* Keyword: "as" */
3645
+ #line 832 "src/parser.y"
3828
3646
  {
3829
3647
  (yyval.literal) = jv_string("as");
3830
3648
  }
3831
- #line 3832 "src/parser.c"
3649
+ #line 3650 "src/parser.c"
3832
3650
  break;
3833
3651
 
3834
- case 138: /* Keyword: "def" */
3835
- #line 879 "src/parser.y"
3652
+ case 136: /* Keyword: "def" */
3653
+ #line 835 "src/parser.y"
3836
3654
  {
3837
3655
  (yyval.literal) = jv_string("def");
3838
3656
  }
3839
- #line 3840 "src/parser.c"
3657
+ #line 3658 "src/parser.c"
3840
3658
  break;
3841
3659
 
3842
- case 139: /* Keyword: "module" */
3843
- #line 882 "src/parser.y"
3660
+ case 137: /* Keyword: "module" */
3661
+ #line 838 "src/parser.y"
3844
3662
  {
3845
3663
  (yyval.literal) = jv_string("module");
3846
3664
  }
3847
- #line 3848 "src/parser.c"
3665
+ #line 3666 "src/parser.c"
3848
3666
  break;
3849
3667
 
3850
- case 140: /* Keyword: "import" */
3851
- #line 885 "src/parser.y"
3668
+ case 138: /* Keyword: "import" */
3669
+ #line 841 "src/parser.y"
3852
3670
  {
3853
3671
  (yyval.literal) = jv_string("import");
3854
3672
  }
3855
- #line 3856 "src/parser.c"
3673
+ #line 3674 "src/parser.c"
3856
3674
  break;
3857
3675
 
3858
- case 141: /* Keyword: "include" */
3859
- #line 888 "src/parser.y"
3676
+ case 139: /* Keyword: "include" */
3677
+ #line 844 "src/parser.y"
3860
3678
  {
3861
3679
  (yyval.literal) = jv_string("include");
3862
3680
  }
3863
- #line 3864 "src/parser.c"
3681
+ #line 3682 "src/parser.c"
3864
3682
  break;
3865
3683
 
3866
- case 142: /* Keyword: "if" */
3867
- #line 891 "src/parser.y"
3684
+ case 140: /* Keyword: "if" */
3685
+ #line 847 "src/parser.y"
3868
3686
  {
3869
3687
  (yyval.literal) = jv_string("if");
3870
3688
  }
3871
- #line 3872 "src/parser.c"
3689
+ #line 3690 "src/parser.c"
3872
3690
  break;
3873
3691
 
3874
- case 143: /* Keyword: "then" */
3875
- #line 894 "src/parser.y"
3692
+ case 141: /* Keyword: "then" */
3693
+ #line 850 "src/parser.y"
3876
3694
  {
3877
3695
  (yyval.literal) = jv_string("then");
3878
3696
  }
3879
- #line 3880 "src/parser.c"
3697
+ #line 3698 "src/parser.c"
3880
3698
  break;
3881
3699
 
3882
- case 144: /* Keyword: "else" */
3883
- #line 897 "src/parser.y"
3700
+ case 142: /* Keyword: "else" */
3701
+ #line 853 "src/parser.y"
3884
3702
  {
3885
3703
  (yyval.literal) = jv_string("else");
3886
3704
  }
3887
- #line 3888 "src/parser.c"
3705
+ #line 3706 "src/parser.c"
3888
3706
  break;
3889
3707
 
3890
- case 145: /* Keyword: "elif" */
3891
- #line 900 "src/parser.y"
3708
+ case 143: /* Keyword: "elif" */
3709
+ #line 856 "src/parser.y"
3892
3710
  {
3893
3711
  (yyval.literal) = jv_string("elif");
3894
3712
  }
3895
- #line 3896 "src/parser.c"
3713
+ #line 3714 "src/parser.c"
3896
3714
  break;
3897
3715
 
3898
- case 146: /* Keyword: "reduce" */
3899
- #line 903 "src/parser.y"
3716
+ case 144: /* Keyword: "reduce" */
3717
+ #line 859 "src/parser.y"
3900
3718
  {
3901
3719
  (yyval.literal) = jv_string("reduce");
3902
3720
  }
3903
- #line 3904 "src/parser.c"
3721
+ #line 3722 "src/parser.c"
3904
3722
  break;
3905
3723
 
3906
- case 147: /* Keyword: "foreach" */
3907
- #line 906 "src/parser.y"
3724
+ case 145: /* Keyword: "foreach" */
3725
+ #line 862 "src/parser.y"
3908
3726
  {
3909
3727
  (yyval.literal) = jv_string("foreach");
3910
3728
  }
3911
- #line 3912 "src/parser.c"
3729
+ #line 3730 "src/parser.c"
3912
3730
  break;
3913
3731
 
3914
- case 148: /* Keyword: "end" */
3915
- #line 909 "src/parser.y"
3732
+ case 146: /* Keyword: "end" */
3733
+ #line 865 "src/parser.y"
3916
3734
  {
3917
3735
  (yyval.literal) = jv_string("end");
3918
3736
  }
3919
- #line 3920 "src/parser.c"
3737
+ #line 3738 "src/parser.c"
3920
3738
  break;
3921
3739
 
3922
- case 149: /* Keyword: "and" */
3923
- #line 912 "src/parser.y"
3740
+ case 147: /* Keyword: "and" */
3741
+ #line 868 "src/parser.y"
3924
3742
  {
3925
3743
  (yyval.literal) = jv_string("and");
3926
3744
  }
3927
- #line 3928 "src/parser.c"
3745
+ #line 3746 "src/parser.c"
3928
3746
  break;
3929
3747
 
3930
- case 150: /* Keyword: "or" */
3931
- #line 915 "src/parser.y"
3748
+ case 148: /* Keyword: "or" */
3749
+ #line 871 "src/parser.y"
3932
3750
  {
3933
3751
  (yyval.literal) = jv_string("or");
3934
3752
  }
3935
- #line 3936 "src/parser.c"
3753
+ #line 3754 "src/parser.c"
3936
3754
  break;
3937
3755
 
3938
- case 151: /* Keyword: "try" */
3939
- #line 918 "src/parser.y"
3756
+ case 149: /* Keyword: "try" */
3757
+ #line 874 "src/parser.y"
3940
3758
  {
3941
3759
  (yyval.literal) = jv_string("try");
3942
3760
  }
3943
- #line 3944 "src/parser.c"
3761
+ #line 3762 "src/parser.c"
3944
3762
  break;
3945
3763
 
3946
- case 152: /* Keyword: "catch" */
3947
- #line 921 "src/parser.y"
3764
+ case 150: /* Keyword: "catch" */
3765
+ #line 877 "src/parser.y"
3948
3766
  {
3949
3767
  (yyval.literal) = jv_string("catch");
3950
3768
  }
3951
- #line 3952 "src/parser.c"
3769
+ #line 3770 "src/parser.c"
3952
3770
  break;
3953
3771
 
3954
- case 153: /* Keyword: "label" */
3955
- #line 924 "src/parser.y"
3772
+ case 151: /* Keyword: "label" */
3773
+ #line 880 "src/parser.y"
3956
3774
  {
3957
3775
  (yyval.literal) = jv_string("label");
3958
3776
  }
3959
- #line 3960 "src/parser.c"
3777
+ #line 3778 "src/parser.c"
3960
3778
  break;
3961
3779
 
3962
- case 154: /* Keyword: "break" */
3963
- #line 927 "src/parser.y"
3780
+ case 152: /* Keyword: "break" */
3781
+ #line 883 "src/parser.y"
3964
3782
  {
3965
3783
  (yyval.literal) = jv_string("break");
3966
3784
  }
3967
- #line 3968 "src/parser.c"
3785
+ #line 3786 "src/parser.c"
3968
3786
  break;
3969
3787
 
3970
- case 155: /* MkDict: %empty */
3971
- #line 932 "src/parser.y"
3788
+ case 153: /* DictPairs: %empty */
3789
+ #line 889 "src/parser.y"
3972
3790
  {
3973
- (yyval.blk)=gen_noop();
3791
+ (yyval.blk) = gen_noop();
3974
3792
  }
3975
- #line 3976 "src/parser.c"
3976
- break;
3977
-
3978
- case 156: /* MkDict: MkDictPair */
3979
- #line 935 "src/parser.y"
3980
- { (yyval.blk) = (yyvsp[0].blk); }
3981
- #line 3982 "src/parser.c"
3793
+ #line 3794 "src/parser.c"
3982
3794
  break;
3983
3795
 
3984
- case 157: /* MkDict: MkDictPair ',' MkDict */
3985
- #line 936 "src/parser.y"
3986
- { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); }
3987
- #line 3988 "src/parser.c"
3796
+ case 154: /* DictPairs: DictPair */
3797
+ #line 892 "src/parser.y"
3798
+ {
3799
+ (yyval.blk) = (yyvsp[0].blk);
3800
+ }
3801
+ #line 3802 "src/parser.c"
3988
3802
  break;
3989
3803
 
3990
- case 158: /* MkDict: error ',' MkDict */
3991
- #line 937 "src/parser.y"
3992
- { (yyval.blk) = (yyvsp[0].blk); }
3993
- #line 3994 "src/parser.c"
3804
+ case 155: /* DictPairs: DictPair ',' DictPairs */
3805
+ #line 895 "src/parser.y"
3806
+ {
3807
+ (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
3808
+ }
3809
+ #line 3810 "src/parser.c"
3994
3810
  break;
3995
3811
 
3996
- case 159: /* MkDictPair: IDENT ':' ExpD */
3997
- #line 940 "src/parser.y"
3998
- {
3812
+ case 156: /* DictPair: IDENT ':' DictExpr */
3813
+ #line 900 "src/parser.y"
3814
+ {
3999
3815
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
4000
- }
4001
- #line 4002 "src/parser.c"
3816
+ }
3817
+ #line 3818 "src/parser.c"
4002
3818
  break;
4003
3819
 
4004
- case 160: /* MkDictPair: Keyword ':' ExpD */
4005
- #line 943 "src/parser.y"
4006
- {
3820
+ case 157: /* DictPair: Keyword ':' DictExpr */
3821
+ #line 903 "src/parser.y"
3822
+ {
4007
3823
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
4008
- }
4009
- #line 4010 "src/parser.c"
3824
+ }
3825
+ #line 3826 "src/parser.c"
4010
3826
  break;
4011
3827
 
4012
- case 161: /* MkDictPair: String ':' ExpD */
4013
- #line 946 "src/parser.y"
4014
- {
3828
+ case 158: /* DictPair: String ':' DictExpr */
3829
+ #line 906 "src/parser.y"
3830
+ {
4015
3831
  (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk));
4016
- }
4017
- #line 4018 "src/parser.c"
3832
+ }
3833
+ #line 3834 "src/parser.c"
4018
3834
  break;
4019
3835
 
4020
- case 162: /* MkDictPair: String */
4021
- #line 949 "src/parser.y"
4022
- {
3836
+ case 159: /* DictPair: String */
3837
+ #line 909 "src/parser.y"
3838
+ {
4023
3839
  (yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_simple(DUP2),
4024
3840
  gen_op_simple(DUP2), gen_op_simple(INDEX)));
4025
- }
4026
- #line 4027 "src/parser.c"
3841
+ }
3842
+ #line 3843 "src/parser.c"
4027
3843
  break;
4028
3844
 
4029
- case 163: /* MkDictPair: BINDING ':' ExpD */
4030
- #line 953 "src/parser.y"
4031
- {
3845
+ case 160: /* DictPair: BINDING ':' DictExpr */
3846
+ #line 913 "src/parser.y"
3847
+ {
4032
3848
  (yyval.blk) = gen_dictpair(gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[-2].literal)))),
4033
3849
  (yyvsp[0].blk));
4034
3850
  jv_free((yyvsp[-2].literal));
4035
- }
4036
- #line 4037 "src/parser.c"
3851
+ }
3852
+ #line 3853 "src/parser.c"
4037
3853
  break;
4038
3854
 
4039
- case 164: /* MkDictPair: BINDING */
4040
- #line 958 "src/parser.y"
4041
- {
3855
+ case 161: /* DictPair: BINDING */
3856
+ #line 918 "src/parser.y"
3857
+ {
4042
3858
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)),
4043
3859
  gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))));
4044
- }
4045
- #line 4046 "src/parser.c"
3860
+ }
3861
+ #line 3862 "src/parser.c"
4046
3862
  break;
4047
3863
 
4048
- case 165: /* MkDictPair: IDENT */
4049
- #line 962 "src/parser.y"
4050
- {
3864
+ case 162: /* DictPair: IDENT */
3865
+ #line 922 "src/parser.y"
3866
+ {
4051
3867
  (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
4052
3868
  gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
4053
- }
4054
- #line 4055 "src/parser.c"
3869
+ }
3870
+ #line 3871 "src/parser.c"
4055
3871
  break;
4056
3872
 
4057
- case 166: /* MkDictPair: "$__loc__" */
4058
- #line 966 "src/parser.y"
4059
- {
3873
+ case 163: /* DictPair: "$__loc__" */
3874
+ #line 926 "src/parser.y"
3875
+ {
4060
3876
  (yyval.blk) = gen_dictpair(gen_const(jv_string("__loc__")),
4061
3877
  gen_loc_object(&(yyloc), locations));
4062
- }
4063
- #line 4064 "src/parser.c"
3878
+ }
3879
+ #line 3880 "src/parser.c"
4064
3880
  break;
4065
3881
 
4066
- case 167: /* MkDictPair: Keyword */
4067
- #line 970 "src/parser.y"
4068
- {
3882
+ case 164: /* DictPair: Keyword */
3883
+ #line 930 "src/parser.y"
3884
+ {
4069
3885
  (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
4070
3886
  gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
4071
- }
4072
- #line 4073 "src/parser.c"
3887
+ }
3888
+ #line 3889 "src/parser.c"
4073
3889
  break;
4074
3890
 
4075
- case 168: /* MkDictPair: '(' Exp ')' ':' ExpD */
4076
- #line 974 "src/parser.y"
4077
- {
3891
+ case 165: /* DictPair: '(' Query ')' ':' DictExpr */
3892
+ #line 934 "src/parser.y"
3893
+ {
4078
3894
  jv msg = check_object_key((yyvsp[-3].blk));
4079
3895
  if (jv_is_valid(msg)) {
4080
- FAIL((yyloc), jv_string_value(msg));
3896
+ FAIL((yylsp[-3]), jv_string_value(msg));
4081
3897
  }
4082
3898
  jv_free(msg);
4083
3899
  (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk));
4084
- }
4085
- #line 4086 "src/parser.c"
3900
+ }
3901
+ #line 3902 "src/parser.c"
4086
3902
  break;
4087
3903
 
4088
- case 169: /* MkDictPair: error ':' ExpD */
4089
- #line 982 "src/parser.y"
4090
- {
4091
- FAIL((yyloc), "May need parentheses around object key expression");
3904
+ case 166: /* DictPair: error ':' DictExpr */
3905
+ #line 942 "src/parser.y"
3906
+ {
3907
+ FAIL((yylsp[-2]), "May need parentheses around object key expression");
4092
3908
  (yyval.blk) = (yyvsp[0].blk);
4093
- }
4094
- #line 4095 "src/parser.c"
3909
+ }
3910
+ #line 3911 "src/parser.c"
3911
+ break;
3912
+
3913
+ case 167: /* DictExpr: DictExpr '|' DictExpr */
3914
+ #line 948 "src/parser.y"
3915
+ {
3916
+ (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
3917
+ }
3918
+ #line 3919 "src/parser.c"
3919
+ break;
3920
+
3921
+ case 168: /* DictExpr: Expr */
3922
+ #line 951 "src/parser.y"
3923
+ {
3924
+ (yyval.blk) = (yyvsp[0].blk);
3925
+ }
3926
+ #line 3927 "src/parser.c"
4095
3927
  break;
4096
3928
 
4097
3929
 
4098
- #line 4099 "src/parser.c"
3930
+ #line 3931 "src/parser.c"
4099
3931
 
4100
3932
  default: break;
4101
3933
  }
@@ -4324,7 +4156,7 @@ yyreturnlab:
4324
4156
  return yyresult;
4325
4157
  }
4326
4158
 
4327
- #line 986 "src/parser.y"
4159
+ #line 954 "src/parser.y"
4328
4160
 
4329
4161
 
4330
4162
  int jq_parse(struct locfile* locations, block* answer) {