@port-labs/jq-node-bindings 0.0.3 → 0.0.5

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 (286) hide show
  1. package/binding.gyp +3 -3
  2. package/configure +8 -6
  3. package/deps/jq/.travis.yml +184 -35
  4. package/deps/jq/AUTHORS +31 -30
  5. package/deps/jq/COPYING +2 -2
  6. package/deps/jq/KEYS +8 -0
  7. package/deps/jq/Makefile.am +85 -70
  8. package/deps/jq/NEWS +5 -4
  9. package/deps/jq/README.md +18 -9
  10. package/deps/jq/appveyor.yml +53 -0
  11. package/deps/jq/compile-ios.sh +5 -5
  12. package/deps/jq/config/m4/check-math-func.m4 +7 -2
  13. package/deps/jq/configure.ac +130 -68
  14. package/deps/jq/docs/Rakefile +14 -135
  15. package/deps/jq/docs/Rakefile.manual +49 -0
  16. package/deps/jq/docs/Rakefile.website +76 -0
  17. package/deps/jq/docs/content/2.download/default.yml +115 -39
  18. package/deps/jq/docs/content/3.manual/manual.yml +641 -231
  19. package/deps/jq/docs/content/3.manual/v1.3/manual.yml +130 -130
  20. package/deps/jq/docs/content/3.manual/v1.4/manual.yml +160 -160
  21. package/deps/jq/docs/content/3.manual/v1.5/manual.yml +2878 -0
  22. package/deps/jq/docs/content/3.manual/v1.6/manual.yml +3287 -0
  23. package/deps/jq/docs/content/index/index.yml +28 -6
  24. package/deps/jq/docs/public/.htaccess +2 -2
  25. package/deps/jq/docs/public/css/base.scss +141 -59
  26. package/deps/jq/docs/public/js/manual-search.js +52 -0
  27. package/deps/jq/docs/site.yml +1 -10
  28. package/deps/jq/docs/templates/default.liquid +10 -10
  29. package/deps/jq/docs/templates/index.liquid +45 -32
  30. package/deps/jq/docs/templates/manual.liquid +67 -90
  31. package/deps/jq/docs/templates/shared/_footer.liquid +10 -5
  32. package/deps/jq/docs/templates/shared/_head.liquid +17 -12
  33. package/deps/jq/docs/templates/shared/_navbar.liquid +27 -0
  34. package/deps/jq/jq.1.prebuilt +523 -139
  35. package/deps/jq/modules/oniguruma/AUTHORS +1 -0
  36. package/deps/jq/modules/oniguruma/CMakeLists.txt +86 -0
  37. package/deps/jq/modules/oniguruma/COPYING +28 -0
  38. package/deps/jq/modules/oniguruma/ChangeLog +0 -0
  39. package/deps/jq/modules/oniguruma/HISTORY +2138 -0
  40. package/deps/jq/modules/oniguruma/Makefile.am +33 -0
  41. package/deps/jq/modules/oniguruma/NEWS +0 -0
  42. package/deps/jq/modules/oniguruma/README +189 -0
  43. package/deps/jq/modules/oniguruma/README.ja +195 -0
  44. package/deps/jq/modules/oniguruma/README.md +203 -0
  45. package/deps/jq/modules/oniguruma/cmake/dist.cmake +321 -0
  46. package/deps/jq/modules/oniguruma/compile +348 -0
  47. package/deps/jq/modules/oniguruma/config.guess +1754 -0
  48. package/deps/jq/modules/oniguruma/config.sub +1890 -0
  49. package/deps/jq/modules/oniguruma/configure.ac +87 -0
  50. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +31 -0
  51. package/deps/jq/modules/oniguruma/depcomp +791 -0
  52. package/deps/jq/modules/oniguruma/dist.info +10 -0
  53. package/deps/jq/modules/oniguruma/doc/API +660 -0
  54. package/deps/jq/modules/oniguruma/doc/API.ja +667 -0
  55. package/deps/jq/modules/oniguruma/doc/FAQ +12 -0
  56. package/deps/jq/modules/oniguruma/doc/FAQ.ja +22 -0
  57. package/deps/jq/modules/oniguruma/doc/RE +436 -0
  58. package/deps/jq/modules/oniguruma/doc/RE.ja +448 -0
  59. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +698 -0
  60. package/deps/jq/modules/oniguruma/index.html +181 -0
  61. package/deps/jq/modules/oniguruma/index_ja.html +184 -0
  62. package/deps/jq/modules/oniguruma/install-sh +541 -0
  63. package/deps/jq/modules/oniguruma/m4/.whatever +0 -0
  64. package/deps/jq/modules/oniguruma/make_win32.bat +3 -0
  65. package/deps/jq/modules/oniguruma/make_win64.bat +3 -0
  66. package/deps/jq/modules/oniguruma/missing +215 -0
  67. package/deps/jq/modules/oniguruma/onig-config.in +78 -0
  68. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +13 -0
  69. package/deps/jq/modules/oniguruma/oniguruma.pc.in +14 -0
  70. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +28 -0
  71. package/deps/jq/modules/oniguruma/sample/Makefile.am +34 -0
  72. package/deps/jq/modules/oniguruma/sample/bug_fix.c +131 -0
  73. package/deps/jq/modules/oniguruma/sample/crnl.c +127 -0
  74. package/deps/jq/modules/oniguruma/sample/encode.c +308 -0
  75. package/deps/jq/modules/oniguruma/sample/listcap.c +110 -0
  76. package/deps/jq/modules/oniguruma/sample/names.c +75 -0
  77. package/deps/jq/modules/oniguruma/sample/posix.c +96 -0
  78. package/deps/jq/modules/oniguruma/sample/scan.c +88 -0
  79. package/deps/jq/modules/oniguruma/sample/simple.c +59 -0
  80. package/deps/jq/modules/oniguruma/sample/sql.c +76 -0
  81. package/deps/jq/modules/oniguruma/sample/syntax.c +76 -0
  82. package/deps/jq/modules/oniguruma/sample/user_property.c +87 -0
  83. package/deps/jq/modules/oniguruma/src/Makefile.am +58 -0
  84. package/deps/jq/modules/oniguruma/src/Makefile.windows +183 -0
  85. package/deps/jq/modules/oniguruma/src/ascii.c +61 -0
  86. package/deps/jq/modules/oniguruma/src/big5.c +190 -0
  87. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +71 -0
  88. package/deps/jq/modules/oniguruma/src/config.h.win32 +84 -0
  89. package/deps/jq/modules/oniguruma/src/config.h.win64 +84 -0
  90. package/deps/jq/modules/oniguruma/src/cp1251.c +203 -0
  91. package/deps/jq/modules/oniguruma/src/euc_jp.c +310 -0
  92. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +158 -0
  93. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +27 -0
  94. package/deps/jq/modules/oniguruma/src/euc_kr.c +188 -0
  95. package/deps/jq/modules/oniguruma/src/euc_tw.c +171 -0
  96. package/deps/jq/modules/oniguruma/src/gb18030.c +538 -0
  97. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +67 -0
  98. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +55 -0
  99. package/deps/jq/modules/oniguruma/src/iso8859_1.c +275 -0
  100. package/deps/jq/modules/oniguruma/src/iso8859_10.c +242 -0
  101. package/deps/jq/modules/oniguruma/src/iso8859_11.c +99 -0
  102. package/deps/jq/modules/oniguruma/src/iso8859_13.c +231 -0
  103. package/deps/jq/modules/oniguruma/src/iso8859_14.c +244 -0
  104. package/deps/jq/modules/oniguruma/src/iso8859_15.c +238 -0
  105. package/deps/jq/modules/oniguruma/src/iso8859_16.c +240 -0
  106. package/deps/jq/modules/oniguruma/src/iso8859_2.c +238 -0
  107. package/deps/jq/modules/oniguruma/src/iso8859_3.c +238 -0
  108. package/deps/jq/modules/oniguruma/src/iso8859_4.c +240 -0
  109. package/deps/jq/modules/oniguruma/src/iso8859_5.c +229 -0
  110. package/deps/jq/modules/oniguruma/src/iso8859_6.c +99 -0
  111. package/deps/jq/modules/oniguruma/src/iso8859_7.c +225 -0
  112. package/deps/jq/modules/oniguruma/src/iso8859_8.c +99 -0
  113. package/deps/jq/modules/oniguruma/src/iso8859_9.c +231 -0
  114. package/deps/jq/modules/oniguruma/src/koi8.c +253 -0
  115. package/deps/jq/modules/oniguruma/src/koi8_r.c +215 -0
  116. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +22 -0
  117. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +306 -0
  118. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +18 -0
  119. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +545 -0
  120. package/deps/jq/modules/oniguruma/src/mktable.c +1184 -0
  121. package/deps/jq/modules/oniguruma/src/onig_init.c +45 -0
  122. package/deps/jq/modules/oniguruma/src/oniggnu.h +85 -0
  123. package/deps/jq/modules/oniguruma/src/onigposix.h +169 -0
  124. package/deps/jq/modules/oniguruma/src/oniguruma.h +841 -0
  125. package/deps/jq/modules/oniguruma/src/regcomp.c +6300 -0
  126. package/deps/jq/modules/oniguruma/src/regenc.c +917 -0
  127. package/deps/jq/modules/oniguruma/src/regenc.h +243 -0
  128. package/deps/jq/modules/oniguruma/src/regerror.c +393 -0
  129. package/deps/jq/modules/oniguruma/src/regexec.c +3856 -0
  130. package/deps/jq/modules/oniguruma/src/regext.c +202 -0
  131. package/deps/jq/modules/oniguruma/src/reggnu.c +147 -0
  132. package/deps/jq/modules/oniguruma/src/regint.h +779 -0
  133. package/deps/jq/modules/oniguruma/src/regparse.c +5403 -0
  134. package/deps/jq/modules/oniguruma/src/regparse.h +351 -0
  135. package/deps/jq/modules/oniguruma/src/regposerr.c +105 -0
  136. package/deps/jq/modules/oniguruma/src/regposix.c +306 -0
  137. package/deps/jq/modules/oniguruma/src/regsyntax.c +315 -0
  138. package/deps/jq/modules/oniguruma/src/regtrav.c +76 -0
  139. package/deps/jq/modules/oniguruma/src/regversion.c +57 -0
  140. package/deps/jq/modules/oniguruma/src/sjis.c +341 -0
  141. package/deps/jq/modules/oniguruma/src/sjis_prop.c +158 -0
  142. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +27 -0
  143. package/deps/jq/modules/oniguruma/src/st.c +589 -0
  144. package/deps/jq/modules/oniguruma/src/st.h +68 -0
  145. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +2250 -0
  146. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +203 -0
  147. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +113 -0
  148. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +1225 -0
  149. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +24742 -0
  150. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +4846 -0
  151. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +2571 -0
  152. package/deps/jq/modules/oniguruma/src/unicode.c +664 -0
  153. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +2548 -0
  154. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +203 -0
  155. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +113 -0
  156. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1366 -0
  157. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +25306 -0
  158. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +4940 -0
  159. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +2854 -0
  160. package/deps/jq/modules/oniguruma/src/utf16_be.c +235 -0
  161. package/deps/jq/modules/oniguruma/src/utf16_le.c +245 -0
  162. package/deps/jq/modules/oniguruma/src/utf32_be.c +194 -0
  163. package/deps/jq/modules/oniguruma/src/utf32_le.c +194 -0
  164. package/deps/jq/modules/oniguruma/src/utf8.c +335 -0
  165. package/deps/jq/modules/oniguruma/test/Makefile.am +28 -0
  166. package/deps/jq/modules/oniguruma/test/testc.c +874 -0
  167. package/deps/jq/modules/oniguruma/test/testu.c +916 -0
  168. package/deps/jq/modules/oniguruma/test-driver +153 -0
  169. package/deps/jq/modules/oniguruma/windows/testc.c +869 -0
  170. package/deps/jq/scripts/crosscompile +2 -1
  171. package/deps/jq/scripts/gen_utf8_tables.py +2 -3
  172. package/deps/jq/scripts/update-website +29 -0
  173. package/deps/jq/scripts/version +7 -2
  174. package/deps/jq/sig/jq-release.key +41 -0
  175. package/deps/jq/sig/v1.3/jq-linux-x86.asc +17 -0
  176. package/deps/jq/sig/v1.3/jq-linux-x86_64.asc +17 -0
  177. package/deps/jq/sig/v1.3/jq-osx-x86.asc +17 -0
  178. package/deps/jq/sig/v1.3/jq-osx-x86_64.asc +17 -0
  179. package/deps/jq/sig/v1.3/jq-win32.exe.asc +17 -0
  180. package/deps/jq/sig/v1.3/jq-win64.exe.asc +17 -0
  181. package/deps/jq/sig/v1.3/sha256sum.txt +6 -0
  182. package/deps/jq/sig/v1.4/jq-linux-x86.asc +17 -0
  183. package/deps/jq/sig/v1.4/jq-linux-x86_64.asc +17 -0
  184. package/deps/jq/sig/v1.4/jq-osx-x86.asc +17 -0
  185. package/deps/jq/sig/v1.4/jq-osx-x86_64.asc +17 -0
  186. package/deps/jq/sig/v1.4/jq-solaris11-32.asc +17 -0
  187. package/deps/jq/sig/v1.4/jq-solaris11-64.asc +17 -0
  188. package/deps/jq/sig/v1.4/jq-win32.exe.asc +17 -0
  189. package/deps/jq/sig/v1.4/jq-win64.exe.asc +17 -0
  190. package/deps/jq/sig/v1.4/sha256sum.txt +8 -0
  191. package/deps/jq/sig/v1.5/jq-linux32-no-oniguruma.asc +17 -0
  192. package/deps/jq/sig/v1.5/jq-linux32.asc +17 -0
  193. package/deps/jq/sig/v1.5/jq-linux64.asc +17 -0
  194. package/deps/jq/sig/v1.5/jq-osx-amd64.asc +17 -0
  195. package/deps/jq/sig/v1.5/jq-win32.exe.asc +17 -0
  196. package/deps/jq/sig/v1.5/jq-win64.exe.asc +17 -0
  197. package/deps/jq/sig/v1.5/sha256sum.txt +5 -0
  198. package/deps/jq/sig/v1.5rc1/jq-linux-x86_64-static.asc +17 -0
  199. package/deps/jq/sig/v1.5rc1/jq-win32.exe.asc +17 -0
  200. package/deps/jq/sig/v1.5rc1/jq-win64.exe.asc +17 -0
  201. package/deps/jq/sig/v1.5rc1/sha256sum.txt +3 -0
  202. package/deps/jq/sig/v1.5rc2/jq-linux-x86.asc +17 -0
  203. package/deps/jq/sig/v1.5rc2/jq-linux-x86_64.asc +17 -0
  204. package/deps/jq/sig/v1.5rc2/jq-osx-x86_64.asc +17 -0
  205. package/deps/jq/sig/v1.5rc2/jq-win32.exe.asc +17 -0
  206. package/deps/jq/sig/v1.5rc2/jq-win64.exe.asc +17 -0
  207. package/deps/jq/sig/v1.5rc2/sha256sum.txt +5 -0
  208. package/deps/jq/sig/v1.6/jq-linux32.asc +16 -0
  209. package/deps/jq/sig/v1.6/jq-linux64.asc +16 -0
  210. package/deps/jq/sig/v1.6/jq-osx-amd64.asc +16 -0
  211. package/deps/jq/sig/v1.6/jq-win32.exe.asc +16 -0
  212. package/deps/jq/sig/v1.6/jq-win64.exe.asc +16 -0
  213. package/deps/jq/sig/v1.6/sha256sum.txt +5 -0
  214. package/deps/jq/{builtin.c → src/builtin.c} +449 -344
  215. package/deps/jq/{builtin.h → src/builtin.h} +0 -0
  216. package/deps/jq/src/builtin.jq +311 -0
  217. package/deps/jq/{bytecode.c → src/bytecode.c} +0 -0
  218. package/deps/jq/{bytecode.h → src/bytecode.h} +0 -0
  219. package/deps/jq/{compile.c → src/compile.c} +213 -37
  220. package/deps/jq/{compile.h → src/compile.h} +7 -2
  221. package/deps/jq/{exec_stack.h → src/exec_stack.h} +0 -0
  222. package/deps/jq/{execute.c → src/execute.c} +127 -24
  223. package/deps/jq/{inject_errors.c → src/inject_errors.c} +0 -0
  224. package/deps/jq/{jq.h → src/jq.h} +13 -2
  225. package/deps/jq/{jq_parser.h → src/jq_parser.h} +0 -0
  226. package/deps/jq/{jq_test.c → src/jq_test.c} +1 -1
  227. package/deps/jq/{jv.c → src/jv.c} +24 -5
  228. package/deps/jq/{jv.h → src/jv.h} +46 -11
  229. package/deps/jq/{jv_alloc.c → src/jv_alloc.c} +0 -0
  230. package/deps/jq/{jv_alloc.h → src/jv_alloc.h} +0 -0
  231. package/deps/jq/{jv_aux.c → src/jv_aux.c} +38 -14
  232. package/deps/jq/{jv_dtoa.c → src/jv_dtoa.c} +4 -5
  233. package/deps/jq/{jv_dtoa.h → src/jv_dtoa.h} +0 -0
  234. package/deps/jq/src/jv_file.c +81 -0
  235. package/deps/jq/{jv_parse.c → src/jv_parse.c} +8 -2
  236. package/deps/jq/{jv_print.c → src/jv_print.c} +80 -27
  237. package/deps/jq/{jv_unicode.c → src/jv_unicode.c} +28 -4
  238. package/deps/jq/{jv_unicode.h → src/jv_unicode.h} +1 -0
  239. package/deps/jq/{jv_utf8_tables.h → src/jv_utf8_tables.h} +0 -0
  240. package/deps/jq/{lexer.c → src/lexer.c} +317 -292
  241. package/deps/jq/{lexer.h → src/lexer.h} +16 -12
  242. package/deps/jq/{lexer.l → src/lexer.l} +5 -4
  243. package/deps/jq/src/libm.h +291 -0
  244. package/deps/jq/{linker.c → src/linker.c} +5 -3
  245. package/deps/jq/{linker.h → src/linker.h} +0 -0
  246. package/deps/jq/{locfile.c → src/locfile.c} +1 -1
  247. package/deps/jq/{locfile.h → src/locfile.h} +0 -0
  248. package/deps/jq/{main.c → src/main.c} +202 -100
  249. package/deps/jq/{opcode_list.h → src/opcode_list.h} +4 -0
  250. package/deps/jq/{parser.c → src/parser.c} +1149 -1069
  251. package/deps/jq/{parser.h → src/parser.h} +28 -24
  252. package/deps/jq/{parser.y → src/parser.y} +108 -52
  253. package/deps/jq/{util.c → src/util.c} +12 -9
  254. package/deps/jq/{util.h → src/util.h} +0 -0
  255. package/deps/jq/tests/base64.test +35 -0
  256. package/deps/jq/tests/base64test +5 -0
  257. package/deps/jq/tests/jq-f-test.sh +4 -0
  258. package/deps/jq/tests/jq.test +305 -21
  259. package/deps/jq/tests/jqtest +1 -1
  260. package/deps/jq/tests/mantest +1 -1
  261. package/deps/jq/tests/onig.test +13 -0
  262. package/deps/jq/tests/onigtest +1 -1
  263. package/deps/jq/tests/optional.test +20 -0
  264. package/deps/jq/tests/optionaltest +5 -0
  265. package/deps/jq/tests/setup +7 -1
  266. package/deps/jq/tests/shtest +133 -29
  267. package/deps/jq/tests/utf8-truncate.jq +3 -0
  268. package/deps/jq/tests/utf8test +10 -0
  269. package/lib/index.js +7 -1
  270. package/package.json +3 -3
  271. package/test/santiy.test.js +24 -0
  272. package/deps/jq/docs/default_manpage.md +0 -22
  273. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.css +0 -1058
  274. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.min.css +0 -9
  275. package/deps/jq/docs/public/bootstrap/css/bootstrap.css +0 -5224
  276. package/deps/jq/docs/public/bootstrap/css/bootstrap.min.css +0 -9
  277. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings-white.png +0 -0
  278. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings.png +0 -0
  279. package/deps/jq/docs/public/bootstrap/js/bootstrap.js +0 -2027
  280. package/deps/jq/docs/public/bootstrap/js/bootstrap.min.js +0 -6
  281. package/deps/jq/docs/templates/shared/_header.liquid +0 -26
  282. package/deps/jq/jq.1.default +0 -39
  283. package/deps/jq/jv_file.c +0 -49
  284. package/deps/jq/libm.h +0 -160
  285. package/deps/jq/setup.sh +0 -33
  286. package/reports/jest-port-api.xml +0 -35
@@ -1,8 +1,8 @@
1
- /* A Bison parser, made by GNU Bison 3.0.2. */
1
+ /* A Bison parser, made by GNU Bison 3.0.4. */
2
2
 
3
3
  /* Bison implementation for Yacc-like parsers in C
4
4
 
5
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
5
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
44
44
  #define YYBISON 1
45
45
 
46
46
  /* Bison version. */
47
- #define YYBISON_VERSION "3.0.2"
47
+ #define YYBISON_VERSION "3.0.4"
48
48
 
49
49
  /* Skeleton name. */
50
50
  #define YYSKELETON_NAME "yacc.c"
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
  /* Copy the first part of user declarations. */
65
- #line 1 "parser.y" /* yacc.c:339 */
65
+ #line 1 "src/parser.y" /* yacc.c:339 */
66
66
 
67
67
  #include <assert.h>
68
68
  #include <math.h>
@@ -73,7 +73,7 @@
73
73
  #define YYMALLOC jv_mem_alloc
74
74
  #define YYFREE jv_mem_free
75
75
 
76
- #line 77 "parser.c" /* yacc.c:339 */
76
+ #line 77 "src/parser.c" /* yacc.c:339 */
77
77
 
78
78
  # ifndef YY_NULLPTR
79
79
  # if defined __cplusplus && 201103L <= __cplusplus
@@ -93,8 +93,8 @@
93
93
 
94
94
  /* In a future release of Bison, this section will be replaced
95
95
  by #include "y.tab.h". */
96
- #ifndef YY_YY_PARSER_H_INCLUDED
97
- # define YY_YY_PARSER_H_INCLUDED
96
+ #ifndef YY_YY_SRC_PARSER_H_INCLUDED
97
+ # define YY_YY_SRC_PARSER_H_INCLUDED
98
98
  /* Debug traces. */
99
99
  #ifndef YYDEBUG
100
100
  # define YYDEBUG 0
@@ -103,7 +103,7 @@
103
103
  extern int yydebug;
104
104
  #endif
105
105
  /* "%code requires" blocks. */
106
- #line 11 "parser.y" /* yacc.c:355 */
106
+ #line 11 "src/parser.y" /* yacc.c:355 */
107
107
 
108
108
  #include "locfile.h"
109
109
  struct lexer_param;
@@ -120,7 +120,7 @@ struct lexer_param;
120
120
  } \
121
121
  } while (0)
122
122
 
123
- #line 124 "parser.c" /* yacc.c:355 */
123
+ #line 124 "src/parser.c" /* yacc.c:355 */
124
124
 
125
125
  /* Token type. */
126
126
  #ifndef YYTOKENTYPE
@@ -164,13 +164,14 @@ struct lexer_param;
164
164
  SETDEFINEDOR = 292,
165
165
  LESSEQ = 293,
166
166
  GREATEREQ = 294,
167
- QQSTRING_START = 295,
168
- QQSTRING_TEXT = 296,
169
- QQSTRING_INTERP_START = 297,
170
- QQSTRING_INTERP_END = 298,
171
- QQSTRING_END = 299,
172
- FUNCDEF = 300,
173
- NONOPT = 301
167
+ ALTERNATION = 295,
168
+ QQSTRING_START = 296,
169
+ QQSTRING_TEXT = 297,
170
+ QQSTRING_INTERP_START = 298,
171
+ QQSTRING_INTERP_END = 299,
172
+ QQSTRING_END = 300,
173
+ FUNCDEF = 301,
174
+ NONOPT = 302
174
175
  };
175
176
  #endif
176
177
  /* Tokens. */
@@ -211,26 +212,29 @@ struct lexer_param;
211
212
  #define SETDEFINEDOR 292
212
213
  #define LESSEQ 293
213
214
  #define GREATEREQ 294
214
- #define QQSTRING_START 295
215
- #define QQSTRING_TEXT 296
216
- #define QQSTRING_INTERP_START 297
217
- #define QQSTRING_INTERP_END 298
218
- #define QQSTRING_END 299
219
- #define FUNCDEF 300
220
- #define NONOPT 301
215
+ #define ALTERNATION 295
216
+ #define QQSTRING_START 296
217
+ #define QQSTRING_TEXT 297
218
+ #define QQSTRING_INTERP_START 298
219
+ #define QQSTRING_INTERP_END 299
220
+ #define QQSTRING_END 300
221
+ #define FUNCDEF 301
222
+ #define NONOPT 302
221
223
 
222
224
  /* Value type. */
223
225
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
224
- typedef union YYSTYPE YYSTYPE;
226
+
225
227
  union YYSTYPE
226
228
  {
227
- #line 31 "parser.y" /* yacc.c:355 */
229
+ #line 31 "src/parser.y" /* yacc.c:355 */
228
230
 
229
231
  jv literal;
230
232
  block blk;
231
233
 
232
- #line 233 "parser.c" /* yacc.c:355 */
234
+ #line 235 "src/parser.c" /* yacc.c:355 */
233
235
  };
236
+
237
+ typedef union YYSTYPE YYSTYPE;
234
238
  # define YYSTYPE_IS_TRIVIAL 1
235
239
  # define YYSTYPE_IS_DECLARED 1
236
240
  #endif
@@ -253,10 +257,10 @@ struct YYLTYPE
253
257
 
254
258
  int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr);
255
259
 
256
- #endif /* !YY_YY_PARSER_H_INCLUDED */
260
+ #endif /* !YY_YY_SRC_PARSER_H_INCLUDED */
257
261
 
258
262
  /* Copy the second part of user declarations. */
259
- #line 118 "parser.y" /* yacc.c:358 */
263
+ #line 124 "src/parser.y" /* yacc.c:358 */
260
264
 
261
265
  #include "lexer.h"
262
266
  struct lexer_param {
@@ -301,8 +305,16 @@ int yylex(YYSTYPE* yylval, YYLTYPE* yylloc, block* answer, int* errors,
301
305
  return tok;
302
306
  }
303
307
 
304
- static block gen_dictpair(block k, block v) {
305
- return BLOCK(gen_subexp(k), gen_subexp(v), gen_op_simple(INSERT));
308
+ /* Returns string message if the block is a constant that is not valid as an
309
+ * object key. */
310
+ static jv check_object_key(block k) {
311
+ if (block_is_const(k) && block_const_kind(k) != JV_KIND_STRING) {
312
+ char errbuf[15];
313
+ return jv_string_fmt("Cannot use %s (%s) as object key",
314
+ jv_kind_name(block_const_kind(k)),
315
+ jv_dump_string_trunc(jv_copy(block_const(k)), errbuf, sizeof(errbuf)));
316
+ }
317
+ return jv_invalid();
306
318
  }
307
319
 
308
320
  static block gen_index(block obj, block key) {
@@ -328,6 +340,16 @@ static block constant_fold(block a, block b, int op) {
328
340
  if (!block_is_single(a) || !block_is_const(a) ||
329
341
  !block_is_single(b) || !block_is_const(b))
330
342
  return gen_noop();
343
+ if (op == '+') {
344
+ if (block_const_kind(a) == JV_KIND_NULL) {
345
+ block_free(a);
346
+ return b;
347
+ }
348
+ if (block_const_kind(b) == JV_KIND_NULL) {
349
+ block_free(b);
350
+ return a;
351
+ }
352
+ }
331
353
  if (block_const_kind(a) != block_const_kind(b))
332
354
  return gen_noop();
333
355
 
@@ -388,7 +410,7 @@ static block gen_binop(block a, block b, int op) {
388
410
  }
389
411
 
390
412
  static block gen_format(block a, jv fmt) {
391
- return BLOCK(a, gen_call("format", BLOCK(gen_lambda(gen_const(fmt)))));
413
+ return BLOCK(a, gen_call("format", gen_lambda(gen_const(fmt))));
392
414
  }
393
415
 
394
416
  static block gen_definedor_assign(block object, block val) {
@@ -412,7 +434,7 @@ static block gen_update(block object, block val, int optype) {
412
434
  }
413
435
 
414
436
 
415
- #line 416 "parser.c" /* yacc.c:358 */
437
+ #line 438 "src/parser.c" /* yacc.c:358 */
416
438
 
417
439
  #ifdef short
418
440
  # undef short
@@ -656,21 +678,21 @@ union yyalloc
656
678
  /* YYFINAL -- State number of the termination state. */
657
679
  #define YYFINAL 27
658
680
  /* YYLAST -- Last index in YYTABLE. */
659
- #define YYLAST 2110
681
+ #define YYLAST 1972
660
682
 
661
683
  /* YYNTOKENS -- Number of terminals. */
662
- #define YYNTOKENS 68
684
+ #define YYNTOKENS 69
663
685
  /* YYNNTS -- Number of nonterminals. */
664
- #define YYNNTS 26
686
+ #define YYNNTS 30
665
687
  /* YYNRULES -- Number of rules. */
666
- #define YYNRULES 156
688
+ #define YYNRULES 162
667
689
  /* YYNSTATES -- Number of states. */
668
- #define YYNSTATES 310
690
+ #define YYNSTATES 313
669
691
 
670
692
  /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
671
693
  by yylex, with out-of-bounds checking. */
672
694
  #define YYUNDEFTOK 2
673
- #define YYMAXUTOK 301
695
+ #define YYMAXUTOK 302
674
696
 
675
697
  #define YYTRANSLATE(YYX) \
676
698
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -682,16 +704,16 @@ static const yytype_uint8 yytranslate[] =
682
704
  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683
705
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684
706
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685
- 2, 2, 2, 2, 2, 2, 61, 55, 2, 2,
686
- 59, 60, 53, 51, 47, 52, 63, 54, 2, 2,
687
- 2, 2, 2, 2, 2, 2, 2, 2, 62, 58,
688
- 49, 48, 50, 57, 2, 2, 2, 2, 2, 2,
707
+ 2, 2, 2, 2, 2, 2, 62, 56, 2, 2,
708
+ 60, 61, 54, 52, 48, 53, 64, 55, 2, 2,
709
+ 2, 2, 2, 2, 2, 2, 2, 2, 63, 59,
710
+ 50, 49, 51, 58, 2, 2, 2, 2, 2, 2,
689
711
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690
712
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
691
- 2, 64, 2, 65, 2, 2, 2, 2, 2, 2,
713
+ 2, 65, 2, 66, 2, 2, 2, 2, 2, 2,
692
714
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693
715
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694
- 2, 2, 2, 66, 46, 67, 2, 2, 2, 2,
716
+ 2, 2, 2, 67, 47, 68, 2, 2, 2, 2,
695
717
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696
718
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
697
719
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -709,29 +731,30 @@ static const yytype_uint8 yytranslate[] =
709
731
  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
710
732
  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
711
733
  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
712
- 45, 56
734
+ 45, 46, 57
713
735
  };
714
736
 
715
737
  #if YYDEBUG
716
738
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
717
739
  static const yytype_uint16 yyrline[] =
718
740
  {
719
- 0, 276, 276, 279, 284, 287, 297, 300, 305, 308,
720
- 313, 317, 321, 325, 329, 333, 336, 341, 345, 349,
721
- 354, 361, 365, 369, 373, 377, 381, 385, 389, 393,
722
- 397, 401, 405, 409, 413, 417, 421, 425, 431, 437,
723
- 441, 445, 449, 453, 457, 461, 465, 469, 474, 483,
724
- 490, 496, 508, 519, 533, 538, 544, 547, 552, 557,
725
- 564, 564, 568, 568, 575, 578, 581, 587, 590, 595,
726
- 598, 601, 607, 610, 613, 621, 625, 628, 631, 634,
727
- 637, 640, 643, 646, 649, 653, 659, 662, 665, 668,
728
- 671, 674, 677, 680, 683, 686, 689, 692, 695, 698,
729
- 701, 704, 707, 714, 718, 722, 734, 739, 740, 741,
730
- 742, 745, 748, 753, 758, 762, 765, 770, 773, 778,
731
- 781, 786, 789, 792, 795, 798, 803, 806, 809, 812,
732
- 815, 818, 821, 824, 827, 830, 833, 836, 839, 842,
733
- 845, 848, 851, 854, 857, 862, 865, 866, 867, 870,
734
- 873, 876, 879, 883, 887, 891, 894
741
+ 0, 300, 300, 303, 308, 311, 322, 325, 330, 333,
742
+ 338, 342, 345, 349, 353, 357, 360, 365, 369, 373,
743
+ 378, 385, 389, 393, 397, 401, 405, 409, 413, 417,
744
+ 421, 425, 429, 433, 437, 441, 445, 449, 455, 461,
745
+ 465, 469, 473, 477, 481, 485, 489, 493, 498, 501,
746
+ 518, 527, 534, 542, 553, 558, 564, 567, 572, 577,
747
+ 584, 584, 588, 588, 595, 598, 601, 607, 610, 615,
748
+ 618, 621, 627, 630, 633, 641, 645, 648, 651, 654,
749
+ 657, 660, 663, 666, 669, 673, 679, 682, 685, 688,
750
+ 691, 694, 697, 700, 703, 706, 709, 712, 715, 718,
751
+ 721, 724, 727, 734, 738, 742, 754, 759, 760, 761,
752
+ 762, 765, 768, 773, 778, 781, 786, 789, 794, 798,
753
+ 801, 806, 809, 814, 817, 822, 825, 828, 831, 834,
754
+ 837, 845, 851, 854, 857, 860, 863, 866, 869, 872,
755
+ 875, 878, 881, 884, 887, 890, 893, 896, 899, 902,
756
+ 905, 910, 913, 914, 915, 918, 921, 924, 927, 931,
757
+ 935, 939, 947
735
758
  };
736
759
  #endif
737
760
 
@@ -746,14 +769,15 @@ static const char *const yytname[] =
746
769
  "\"then\"", "\"else\"", "\"elif\"", "\"reduce\"", "\"foreach\"",
747
770
  "\"end\"", "\"and\"", "\"or\"", "\"try\"", "\"catch\"", "\"label\"",
748
771
  "\"break\"", "\"__loc__\"", "\"|=\"", "\"+=\"", "\"-=\"", "\"*=\"",
749
- "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "QQSTRING_START",
772
+ "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "\"?//\"", "QQSTRING_START",
750
773
  "QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END",
751
774
  "QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'",
752
775
  "'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'",
753
776
  "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel",
754
- "Module", "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params",
755
- "Param", "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term",
756
- "Args", "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword",
777
+ "Module", "Imports", "FuncDefs", "Exp", "Import", "ImportWhat",
778
+ "ImportFrom", "FuncDef", "Params", "Param", "String", "@1", "@2",
779
+ "QQString", "ElseBody", "ExpD", "Term", "Args", "Arg", "RepPatterns",
780
+ "Patterns", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword",
757
781
  "MkDict", "MkDictPair", YY_NULLPTR
758
782
  };
759
783
  #endif
@@ -767,57 +791,58 @@ static const yytype_uint16 yytoknum[] =
767
791
  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
768
792
  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
769
793
  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
770
- 295, 296, 297, 298, 299, 300, 124, 44, 61, 60,
771
- 62, 43, 45, 42, 47, 37, 301, 63, 59, 40,
772
- 41, 36, 58, 46, 91, 93, 123, 125
794
+ 295, 296, 297, 298, 299, 300, 301, 124, 44, 61,
795
+ 60, 62, 43, 45, 42, 47, 37, 302, 63, 59,
796
+ 40, 41, 36, 58, 46, 91, 93, 123, 125
773
797
  };
774
798
  # endif
775
799
 
776
- #define YYPACT_NINF -152
800
+ #define YYPACT_NINF -158
777
801
 
778
802
  #define yypact_value_is_default(Yystate) \
779
- (!!((Yystate) == (-152)))
803
+ (!!((Yystate) == (-158)))
780
804
 
781
- #define YYTABLE_NINF -146
805
+ #define YYTABLE_NINF -152
782
806
 
783
807
  #define yytable_value_is_error(Yytable_value) \
784
- (!!((Yytable_value) == (-146)))
808
+ (!!((Yytable_value) == (-152)))
785
809
 
786
810
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
787
811
  STATE-NUM. */
788
812
  static const yytype_int16 yypact[] =
789
813
  {
790
- 22, 828, 42, 46, 9, -2, -152, 27, -152, 55,
791
- 828, 871, 871, 828, 20, 0, -152, 828, 466, 23,
792
- 276, 439, 341, 1374, 828, -152, 1, -152, 3, 3,
793
- 828, 46, 828, -152, -152, -18, 1823, 6, 8, 50,
794
- 107, -152, 109, -152, -8, 57, 1209, -152, -152, -152,
795
- 114, 27, 65, 61, -152, 1010, -19, 68, -152, -152,
796
- -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
797
- -152, -152, -152, -152, -152, -152, -152, 530, 127, 72,
798
- 74, 71, 92, 828, 828, 828, 828, 828, 828, 828,
799
- 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
800
- 828, 828, 828, 828, 828, 828, 828, -152, -152, 1987,
801
- 83, -26, 3, 190, 131, 648, -152, 1987, 828, -152,
802
- 1987, -7, -152, -152, 18, 828, 557, -26, -26, 621,
803
- 99, -152, 16, -152, -152, -152, -152, -152, -152, 397,
804
- -152, 865, 88, 1242, -152, 865, 865, -152, 397, 2053,
805
- 336, 336, 2020, 928, 108, 2053, 2053, 2053, 2053, 2053,
806
- 2053, 336, 336, 1987, 2020, 2053, 336, 336, -8, -8,
807
- 93, 93, 93, -152, 145, -26, 929, 105, 96, 89,
808
- 828, 98, 961, 19, -152, 1424, -152, 828, -152, 79,
809
- -152, 152, 17, -152, 1474, -152, 1774, 110, 111, -152,
810
- -152, 828, -152, 828, -152, 117, -152, 865, 120, 10,
811
- 106, 112, 120, 120, -152, -152, -152, -13, 113, 828,
812
- 163, 115, -11, -152, 116, 828, -152, -152, 1059, -152,
813
- 711, 119, 738, 168, -152, -152, -152, -152, 18, 121,
814
- -152, 828, 828, -152, 828, 828, 1987, 1856, -152, 865,
815
- 865, 865, -26, -152, -26, 1275, -152, -26, 929, -152,
816
- -26, 1987, 124, 125, 1108, -152, -152, 1524, 801, -152,
817
- 828, 1905, 1954, 1574, 1624, -152, 120, 120, 120, -152,
818
- -152, 122, -152, -152, -152, -152, -152, 128, -152, -152,
819
- 1674, 1724, -152, 828, 828, 828, -26, -152, -152, -152,
820
- 1774, 1308, 1157, -152, -152, -152, 828, -152, 1341, -152
814
+ 21, 772, 43, 63, -6, 12, -158, 80, -158, 122,
815
+ 772, 193, 193, 772, 74, 5, -158, 772, 522, 10,
816
+ 279, 455, 152, 1290, 772, -158, 8, -158, 3, 3,
817
+ 772, 63, 680, 772, -158, -158, 67, 1646, 58, 130,
818
+ 106, 133, -158, 135, -158, 20, 83, 1120, -158, -158,
819
+ -158, 140, 80, 93, 86, -158, 917, -23, 91, -158,
820
+ -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
821
+ -158, -158, -158, -158, -158, -158, -158, -158, 772, 151,
822
+ 94, 97, 95, 113, 772, 772, 772, 772, 772, 772,
823
+ 772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
824
+ 772, 772, 772, 772, 772, 772, 772, 772, -158, -158,
825
+ 1814, 104, -7, 3, 388, 171, -158, -158, -158, 1814,
826
+ 772, -158, -158, 1341, 1814, 59, -158, -158, 7, 772,
827
+ 587, -7, -7, 652, 117, -158, 4, -158, -158, -158,
828
+ -158, -158, -158, 345, -3, -158, -3, 1154, -158, -3,
829
+ -3, -158, 345, 1882, 370, 370, 1848, 436, 1914, 1882,
830
+ 1882, 1882, 1882, 1882, 1882, 370, 370, 1814, 1848, 1882,
831
+ 370, 370, 20, 20, 129, 129, 129, -158, 184, -7,
832
+ 834, 149, 143, 156, 134, 136, 772, 145, 867, 47,
833
+ -158, -158, 772, -158, 23, -158, 200, 72, -158, 1392,
834
+ -158, 1596, 146, 150, -158, -158, 772, -158, 772, -158,
835
+ -11, -158, -3, 162, 51, 162, 148, 162, 162, -158,
836
+ -158, -158, -24, 153, 154, 772, 209, 155, -15, -158,
837
+ 158, -7, 772, -158, -158, 967, -158, 744, 157, -158,
838
+ 215, -158, -158, -158, 7, 159, -158, 772, 772, -158,
839
+ 772, 772, 1814, 1680, -158, -3, -3, -7, -158, -7,
840
+ -7, 1188, 163, -7, 834, -158, -7, 185, 1814, 169,
841
+ 170, 1017, -158, -158, -158, 772, 1730, 1780, 1443, 1494,
842
+ -158, 162, 162, -158, -158, -158, 166, -7, -158, -158,
843
+ -158, -158, -158, 172, 1545, -158, 772, 772, 772, -7,
844
+ -158, -158, -158, 1596, 1222, 1067, -158, -158, -158, 772,
845
+ -158, 1256, -158
821
846
  };
822
847
 
823
848
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -828,50 +853,51 @@ static const yytype_uint8 yydefact[] =
828
853
  4, 0, 0, 6, 105, 81, 96, 98, 73, 0,
829
854
  0, 0, 0, 0, 0, 0, 60, 0, 0, 0,
830
855
  0, 0, 0, 0, 0, 97, 47, 1, 0, 0,
831
- 8, 6, 0, 77, 62, 0, 0, 0, 0, 18,
832
- 0, 75, 0, 64, 32, 0, 0, 104, 103, 84,
833
- 0, 0, 83, 0, 101, 0, 0, 154, 126, 127,
834
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
835
- 138, 139, 140, 141, 142, 143, 144, 0, 0, 152,
836
- 0, 0, 146, 0, 0, 0, 0, 0, 0, 0,
856
+ 8, 6, 0, 0, 77, 62, 0, 0, 0, 0,
857
+ 18, 0, 75, 0, 64, 32, 0, 0, 104, 103,
858
+ 84, 0, 0, 83, 0, 101, 0, 0, 160, 132,
859
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
860
+ 143, 144, 145, 146, 147, 148, 149, 150, 0, 0,
861
+ 158, 0, 0, 152, 0, 0, 0, 0, 0, 0,
837
862
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838
- 0, 0, 0, 0, 0, 0, 0, 21, 5, 10,
839
- 80, 0, 0, 0, 0, 0, 3, 2, 8, 7,
840
- 113, 0, 111, 64, 0, 0, 0, 0, 0, 0,
841
- 0, 74, 0, 107, 99, 85, 79, 108, 100, 0,
842
- 110, 0, 0, 0, 153, 0, 0, 102, 0, 40,
843
- 41, 42, 25, 24, 23, 27, 31, 34, 36, 39,
844
- 26, 45, 46, 28, 29, 22, 43, 44, 30, 33,
845
- 35, 37, 38, 76, 0, 0, 0, 0, 82, 0,
846
- 0, 89, 0, 0, 50, 0, 9, 0, 106, 0,
847
- 59, 0, 0, 56, 0, 16, 0, 0, 0, 19,
848
- 17, 0, 65, 0, 61, 0, 148, 0, 149, 71,
849
- 0, 0, 151, 150, 147, 114, 117, 0, 0, 0,
850
- 0, 0, 0, 119, 0, 0, 78, 109, 0, 88,
851
- 0, 87, 0, 0, 52, 112, 63, 58, 0, 0,
852
- 54, 0, 0, 15, 0, 0, 20, 0, 70, 0,
853
- 0, 0, 0, 115, 0, 0, 121, 0, 0, 116,
854
- 0, 11, 95, 94, 0, 86, 49, 0, 0, 57,
855
- 0, 0, 0, 0, 0, 66, 69, 156, 155, 118,
856
- 122, 0, 124, 120, 123, 92, 91, 93, 51, 48,
857
- 0, 0, 68, 0, 0, 0, 0, 90, 53, 55,
858
- 0, 0, 0, 125, 67, 12, 0, 14, 0, 13
863
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 5,
864
+ 10, 80, 0, 0, 0, 0, 53, 52, 3, 2,
865
+ 8, 7, 48, 0, 113, 0, 111, 64, 0, 0,
866
+ 0, 0, 0, 0, 0, 74, 0, 107, 99, 85,
867
+ 79, 108, 100, 0, 0, 110, 0, 0, 159, 0,
868
+ 0, 102, 0, 40, 41, 42, 25, 24, 23, 27,
869
+ 31, 34, 36, 39, 26, 45, 46, 28, 29, 22,
870
+ 43, 44, 30, 33, 35, 37, 38, 76, 0, 0,
871
+ 0, 0, 0, 117, 82, 0, 0, 89, 0, 0,
872
+ 9, 49, 0, 106, 0, 59, 0, 0, 56, 0,
873
+ 16, 0, 0, 0, 19, 17, 0, 65, 0, 61,
874
+ 0, 154, 0, 162, 71, 155, 0, 157, 156, 153,
875
+ 118, 121, 0, 0, 0, 0, 0, 0, 0, 123,
876
+ 0, 0, 0, 78, 109, 0, 88, 0, 87, 51,
877
+ 0, 112, 63, 58, 0, 0, 54, 0, 0, 15,
878
+ 0, 0, 20, 0, 70, 0, 0, 0, 119, 0,
879
+ 0, 0, 125, 0, 0, 120, 0, 116, 11, 95,
880
+ 94, 0, 86, 50, 57, 0, 0, 0, 0, 0,
881
+ 66, 69, 161, 122, 131, 127, 0, 0, 129, 124,
882
+ 128, 92, 91, 93, 0, 68, 0, 0, 0, 0,
883
+ 126, 90, 55, 0, 0, 0, 130, 67, 12, 0,
884
+ 14, 0, 13
859
885
  };
860
886
 
861
887
  /* YYPGOTO[NTERM-NUM]. */
862
888
  static const yytype_int16 yypgoto[] =
863
889
  {
864
- -152, -152, -152, 142, 69, -1, -152, -12, -152, -50,
865
- 4, -152, -152, 66, -110, -141, -4, -152, 5, -125,
866
- -152, -152, -65, -151, -109, -152
890
+ -158, -158, -158, 201, 115, -1, -158, -158, 204, -8,
891
+ -158, -5, 6, -158, -158, 110, -65, -131, -4, -158,
892
+ 48, -158, 16, -149, -158, -158, -22, -157, -104, -158
867
893
  };
868
894
 
869
895
  /* YYDEFGOTO[NTERM-NUM]. */
870
896
  static const yytype_int16 yydefgoto[] =
871
897
  {
872
- -1, 2, 3, 30, 116, 109, 31, 24, 192, 193,
873
- 25, 43, 123, 132, 243, 208, 26, 121, 122, 177,
874
- 217, 222, 223, 80, 81, 82
898
+ -1, 2, 3, 30, 118, 110, 31, 32, 115, 24,
899
+ 197, 198, 25, 44, 127, 136, 249, 213, 26, 125,
900
+ 126, 181, 182, 183, 222, 228, 229, 81, 82, 83
875
901
  };
876
902
 
877
903
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -879,492 +905,466 @@ static const yytype_int16 yydefgoto[] =
879
905
  number is the opposite. If YYTABLE_NINF, syntax error. */
880
906
  static const yytype_int16 yytable[] =
881
907
  {
882
- 23, 41, 197, 198, 212, 213, 110, 37, 38, 36,
883
- 51, 110, 39, 110, 111, 110, 44, 46, 118, 127,
884
- 55, 128, 190, 232, 52, 224, 79, 47, 139, 117,
885
- 206, 120, 114, 115, 252, 174, 258, 1, 175, 214,
886
- 176, 124, 27, 16, 125, 104, 105, 106, 140, 107,
887
- 216, 187, 253, 188, 48, 33, 259, 202, 203, 35,
888
- 204, 42, 28, 29, 112, 113, 248, 34, 32, 112,
889
- 113, 112, 113, 112, 113, 238, 143, 239, 129, 191,
890
- 233, 40, 149, 150, 151, 152, 153, 154, 155, 156,
891
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
892
- 167, 168, 169, 170, 171, 172, 118, 224, 276, 277,
893
- 278, 130, 182, 131, 185, 135, 178, 133, 84, 85,
894
- 202, 203, 136, 236, 194, 196, 137, 279, 200, 280,
895
- 141, 144, 282, 87, 145, 284, 146, 209, 147, 148,
896
- 173, 209, 209, 79, 183, 201, 95, 96, 210, 215,
897
- 107, 225, 79, 226, 227, 229, 237, 100, 101, 102,
898
- 103, 104, 105, 106, 139, 107, 249, 256, 250, 244,
899
- 245, 303, 268, 119, 251, 254, 265, 257, 260, 228,
900
- 221, 285, 286, 270, 296, 297, 120, 186, 269, 189,
901
- 304, 179, 235, 283, 4, 5, 6, 7, 8, 0,
902
- 246, 0, 247, 209, 9, 0, 0, 0, 10, 0,
903
- 0, 0, 11, 12, 0, 0, 0, 13, 255, 14,
904
- 15, 0, 0, 0, 261, 0, 0, 0, 0, 264,
905
- 16, 267, 0, 0, 0, 0, 0, 0, 0, 0,
906
- 271, 272, 17, 273, 274, 209, 209, 209, 0, 18,
907
- 0, 19, 180, 20, 21, 181, 22, 0, 0, 0,
908
- 0, 0, 221, 0, 0, 0, 0, 290, 0, 291,
909
- 0, 0, 0, 0, 0, 0, -72, 49, 0, 0,
910
- 50, -72, 0, 51, 0, -72, -72, -72, -72, -72,
911
- 0, 0, 300, 301, 302, -72, -72, -72, 0, 0,
912
- -72, -72, -72, 0, -72, 308, 0, 0, -72, -72,
913
- -72, -72, -72, -72, -72, -72, 16, 0, 0, -72,
914
- 0, 0, -72, -72, -72, -72, -72, -72, -72, -72,
915
- -72, -72, 0, -72, -72, 0, -72, 0, -72, -72,
916
- -72, -72, 56, -72, 0, 57, -146, -146, 51, 0,
917
- 0, 0, 0, 0, 58, 59, 60, 61, 62, 63,
908
+ 23, 4, 5, 6, 7, 8, 42, 38, 39, 37,
909
+ 52, 195, 40, 111, 48, 215, 45, 47, 217, 218,
910
+ 56, 112, 120, 230, 257, 143, 53, 15, 80, 119,
911
+ 221, 123, 124, 264, 116, 116, 1, 143, 16, 211,
912
+ 144, 49, 258, 27, 16, 145, 207, 208, 219, 209,
913
+ 212, 239, 144, 265, 33, 178, 111, 18, 179, 19,
914
+ 180, 20, 21, 111, 22, 207, 208, 43, 242, 196,
915
+ 34, 131, 113, 114, 105, 106, 107, 147, 108, 28,
916
+ 29, 254, 267, 153, 154, 155, 156, 157, 158, 159,
917
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
918
+ 170, 171, 172, 173, 174, 175, 176, 230, 283, 240,
919
+ 284, 285, 120, 188, 288, 113, 114, 290, 192, 184,
920
+ 193, 35, 113, 114, 281, 282, 36, 128, 199, 201,
921
+ 129, 244, 205, 245, 133, 111, 41, 134, 300, 135,
922
+ 214, 139, 214, 132, 137, 214, 214, 202, 203, 80,
923
+ 306, 140, 141, 57, 146, 148, 58, 149, 80, 52,
924
+ 150, 152, 177, 151, 206, 59, 60, 61, 62, 63,
918
925
  64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
919
- 74, 75, 76, 0, -146, -146, 0, 0, 0, 0,
920
- 0, 16, 0, 0, 0, -146, -146, 102, 103, 104,
921
- 105, 106, 0, 107, 0, 0, 0, 0, 205, 0,
922
- 77, 57, 78, 0, 51, 0, 0, 0, -145, 0,
923
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
924
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
925
- 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
926
- 53, 0, 0, 4, 5, 6, 7, 8, 0, 0,
927
- 0, 0, 0, 9, 0, 0, 77, 10, 78, 0,
928
- 0, 11, 12, 0, -145, 0, 13, 45, 14, 15,
929
- 4, 5, 6, 7, 8, 0, 0, 0, 0, 16,
930
- 9, 0, 0, 0, 10, 0, 0, 0, 11, 12,
931
- 0, 17, 0, 13, 0, 14, 15, 0, 18, 0,
932
- 19, 0, 20, 21, 54, 22, 16, 0, 0, 0,
926
+ 74, 75, 76, 77, 189, 235, 227, 108, 220, 231,
927
+ 232, 124, 233, 16, 113, 114, -115, 4, 5, 6,
928
+ 7, 8, 234, 236, 243, 252, 250, 253, 214, 255,
929
+ 251, 256, 78, 262, 79, 272, 259, 260, 263, 273,
930
+ -151, 266, 275, 15, 261, -114, 287, 291, 292, 299,
931
+ 301, 268, 121, 117, 16, 190, 271, 194, 307, 274,
932
+ 241, 0, 289, 0, 0, 0, 276, 277, 0, 278,
933
+ 279, 214, 214, 18, 0, 19, 0, 20, 21, 0,
934
+ 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935
+ 227, 0, 0, 0, 294, 0, 0, 0, 0, -72,
936
+ 50, 0, 0, 51, -72, 0, 52, 0, -72, -72,
937
+ -72, -72, -72, 0, 0, 303, 304, 305, -72, -72,
938
+ -72, 0, 0, -72, -72, -72, 0, -72, 311, 0,
939
+ 0, -72, -72, -72, -72, -72, -72, -72, -72, 0,
940
+ 16, 0, 0, -72, 0, 0, -72, -72, -72, -72,
941
+ -72, -72, -72, -72, -72, -72, 0, -72, -72, 0,
942
+ -72, 0, -72, -72, -72, -72, 210, -72, 0, 58,
943
+ 0, 0, 52, 0, 0, 0, 0, 0, 59, 60,
944
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
945
+ 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
946
+ -152, -152, 0, 0, 0, 0, 16, 0, 0, 185,
947
+ 0, 0, 4, 5, 6, 7, 8, 0, 0, 0,
948
+ 0, 0, 9, 0, 0, 78, 10, 79, -152, -152,
949
+ 11, 12, 0, -151, 0, 13, 0, 14, 15, 0,
950
+ -152, -152, 103, 104, 105, 106, 107, 0, 108, 16,
951
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952
+ 0, 17, 0, 0, 0, 0, 85, 86, 18, 0,
953
+ 19, 186, 20, 21, 187, 22, 54, 0, 0, 4,
954
+ 5, 6, 7, 8, 0, 0, 0, 0, 0, 9,
955
+ 0, 0, 0, 10, 96, 97, 0, 11, 12, 0,
956
+ 0, 0, 13, 0, 14, 15, 101, 102, 103, 104,
957
+ 105, 106, 107, 0, 108, 0, 16, 0, 0, 0,
933
958
  0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
934
959
  0, 0, 0, 0, 0, 18, 0, 19, 0, 20,
935
- 21, 142, 22, 0, 4, 5, 6, 7, 8, 0,
936
- 0, 0, 0, 0, 9, 0, 0, 0, 10, 0,
937
- 0, 0, 11, 12, 0, 0, 0, 13, 195, 14,
938
- 15, 4, 5, 6, 7, 8, 0, 0, 0, 0,
939
- 16, 9, 0, 0, 0, 10, 0, 0, 0, 11,
940
- 12, 0, 17, 0, 13, 0, 14, 15, 0, 18,
941
- 0, 19, 0, 20, 21, 0, 22, 16, 0, 0,
942
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
943
- 0, 0, 0, 0, 0, 0, 18, 0, 19, 0,
944
- 20, 21, 199, 22, 0, 4, 5, 6, 7, 8,
945
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 10,
946
- 0, 0, 0, 11, 12, 0, 0, 0, 13, 0,
947
- 14, 15, 4, 5, 6, 7, 8, 0, 0, 0,
948
- 0, 16, 9, 0, 0, 0, 10, 0, 0, 0,
949
- 11, 12, 0, 17, 0, 13, 0, 14, 15, 0,
950
- 18, 0, 19, 0, 20, 21, 0, 22, 16, 0,
951
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952
- 17, 0, 0, 0, 0, 0, 184, 18, 0, 19,
953
- 0, 20, 21, 0, 22, 4, 5, 6, 7, 8,
954
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 10,
955
- 0, 0, 0, 11, 12, 0, 0, 0, 13, 0,
956
- 14, 15, 4, 5, 6, 7, 8, 0, 0, 0,
957
- 0, 16, 9, 0, 0, 0, 10, 0, 0, 0,
958
- 11, 12, 0, 17, 0, 13, 0, 14, 15, 0,
959
- 18, 0, 19, 0, 20, 21, 263, 22, 16, 0,
960
+ 21, 55, 22, 46, 0, 0, 4, 5, 6, 7,
961
+ 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
962
+ 10, 0, 0, 0, 11, 12, 0, 0, 0, 13,
963
+ 0, 14, 15, 0, 0, 0, 0, 0, 0, 0,
964
+ 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
965
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
966
+ 0, 0, 18, 0, 19, 0, 20, 21, 200, 22,
967
+ 0, 4, 5, 6, 7, 8, 0, 0, 0, 0,
968
+ 0, 9, 0, 0, 0, 10, 0, 0, 0, 11,
969
+ 12, 0, 0, 0, 13, 0, 14, 15, 0, 0,
970
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
960
971
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961
- 17, 0, 0, 0, 0, 0, 266, 18, 0, 19,
962
- 0, 20, 21, 0, 22, 4, 5, 6, 7, 8,
963
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 10,
964
- 0, 0, 0, 11, 12, 0, 0, 0, 13, 0,
965
- 14, 15, 4, 5, 6, 7, 8, 0, 0, 0,
966
- 0, 16, 9, 0, 0, 0, 10, 0, 0, 0,
967
- 11, 12, 0, 17, 0, 13, 0, 14, 15, 289,
968
- 18, 0, 19, 0, 20, 21, 0, 22, 16, 4,
969
- 5, 6, 7, 8, 0, 4, 5, 6, 7, 8,
970
972
  17, 0, 0, 0, 0, 0, 0, 18, 0, 19,
971
- 0, 20, 21, 0, 22, 15, 0, 0, 0, 0,
972
- 0, 15, 0, 0, 0, 16, 0, 0, 0, 0,
973
- 0, 16, 0, 0, 0, 0, 0, 207, 0, 0,
974
- 0, 0, 0, 0, 18, 0, 19, 0, 20, 21,
975
- 18, 22, 19, 218, 20, 21, 51, 22, 84, 85,
976
- 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
977
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
978
- 76, 0, 0, 0, 0, 0, 95, 96, 0, 16,
979
- 83, 84, 85, 86, 0, 0, 0, 100, 101, 102,
980
- 103, 104, 105, 106, 0, 107, 87, 88, 219, 0,
981
- 220, 0, 0, 89, 90, 91, 92, 93, 94, 95,
982
- 96, 0, 0, 0, 0, 0, 0, 97, 98, 99,
983
- 100, 101, 102, 103, 104, 105, 106, 0, 107, 83,
984
- 84, 85, 86, 230, 0, 0, 231, 0, 0, 0,
985
- 0, 0, 0, 0, 0, 87, 88, 0, 0, 0,
986
- 0, 0, 89, 90, 91, 92, 93, 94, 95, 96,
987
- 0, 0, 0, 0, 0, 0, 97, 98, 99, 100,
988
- 101, 102, 103, 104, 105, 106, 0, 107, 83, 84,
989
- 85, 86, 0, 0, 0, 138, 0, 0, 0, 0,
990
- 0, 0, 0, 0, 87, 88, 0, 0, 0, 0,
991
- 0, 89, 90, 91, 92, 93, 94, 95, 96, 0,
992
- 0, 0, 0, 0, 0, 97, 98, 99, 100, 101,
993
- 102, 103, 104, 105, 106, 0, 107, 83, 84, 85,
994
- 86, 0, 0, 0, 262, 0, 0, 0, 0, 0,
995
- 0, 0, 0, 87, 88, 0, 0, 0, 0, 0,
996
- 89, 90, 91, 92, 93, 94, 95, 96, 0, 0,
997
- 0, 0, 0, 0, 97, 98, 99, 100, 101, 102,
998
- 103, 104, 105, 106, 0, 107, 83, 84, 85, 86,
999
- 0, 0, 0, 287, 0, 0, 0, 0, 0, 0,
1000
- 0, 0, 87, 88, 0, 0, 0, 0, 0, 89,
1001
- 90, 91, 92, 93, 94, 95, 96, 0, 0, 0,
1002
- 0, 0, 0, 97, 98, 99, 100, 101, 102, 103,
1003
- 104, 105, 106, 0, 107, 306, 0, 307, 83, 84,
1004
- 85, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1005
- 0, 0, 0, 0, 87, 88, 0, 0, 0, 0,
1006
- 0, 89, 90, 91, 92, 93, 94, 95, 96, 0,
1007
- 0, 83, 84, 85, 86, 97, 98, 99, 100, 101,
1008
- 102, 103, 104, 105, 106, 0, 107, 87, 88, 134,
1009
- 0, 0, 0, 0, 89, 90, 91, 92, 93, 94,
1010
- 95, 96, 0, 0, 83, 84, 85, 86, 97, 98,
1011
- 99, 100, 101, 102, 103, 104, 105, 106, 0, 107,
1012
- 87, 88, 211, 0, 0, 0, 0, 89, 90, 91,
1013
- 92, 93, 94, 95, 96, 0, 0, 83, 84, 85,
1014
- 86, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1015
- 106, 0, 107, 87, 88, 281, 0, 0, 0, 0,
1016
- 89, 90, 91, 92, 93, 94, 95, 96, 0, 0,
1017
- 83, 84, 85, 86, 97, 98, 99, 100, 101, 102,
1018
- 103, 104, 105, 106, 0, 107, 87, 88, 305, 0,
1019
- 0, 0, 0, 89, 90, 91, 92, 93, 94, 95,
1020
- 96, 0, 0, 83, 84, 85, 86, 97, 98, 99,
1021
- 100, 101, 102, 103, 104, 105, 106, 0, 107, 87,
1022
- 88, 309, 0, 0, 0, 0, 89, 90, 91, 92,
1023
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1024
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1025
- 0, 107, 108, 83, 84, 85, 86, 0, 0, 0,
1026
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1027
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1028
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1029
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1030
- 0, 107, 234, 83, 84, 85, 86, 0, 0, 0,
1031
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1032
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1033
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1034
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1035
- 0, 107, 240, 83, 84, 85, 86, 0, 0, 0,
1036
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1037
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1038
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1039
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1040
- 0, 107, 288, 83, 84, 85, 86, 0, 0, 0,
1041
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1042
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1043
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1044
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1045
- 0, 107, 294, 83, 84, 85, 86, 0, 0, 0,
1046
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1047
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1048
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1049
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1050
- 0, 107, 295, 83, 84, 85, 86, 0, 0, 0,
1051
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1052
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1053
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1054
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1055
- 0, 107, 298, 83, 84, 85, 86, 0, 0, 0,
1056
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1057
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1058
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1059
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1060
- 0, 107, 299, 83, 84, 85, 86, 0, 0, 0,
1061
- 0, 0, 0, 0, 241, 242, 0, 0, 0, 87,
1062
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1063
- 93, 94, 95, 96, 0, 0, 0, 0, 0, 0,
1064
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1065
- 0, 107, 83, 84, 85, 86, 0, 0, 0, 0,
1066
- 0, 0, 126, 0, 0, 0, 0, 0, 87, 88,
1067
- 0, 0, 0, 0, 0, 89, 90, 91, 92, 93,
1068
- 94, 95, 96, 0, 0, 83, 84, 85, 86, 97,
1069
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
1070
- 107, 87, 88, 0, 0, 0, 0, 0, 89, 90,
1071
- 91, 92, 93, 94, 95, 96, 0, 0, 0, 275,
1072
- 0, 0, 97, 98, 99, 100, 101, 102, 103, 104,
1073
- 105, 106, 0, 107, 83, 84, 85, 86, 0, 0,
1074
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 292,
1075
- 87, 88, 0, 0, 0, 0, 0, 89, 90, 91,
1076
- 92, 93, 94, 95, 96, 0, 0, 0, 0, 0,
1077
- 0, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1078
- 106, 0, 107, 83, 84, 85, 86, 0, 0, 0,
1079
- 0, 0, 0, 293, 0, 0, 0, 0, 0, 87,
1080
- 88, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1081
- 93, 94, 95, 96, 0, 0, 83, 84, 85, 86,
1082
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1083
- 0, 107, 87, 88, 0, 0, 0, 0, 0, 89,
1084
- 90, 91, 92, 93, 94, 95, 96, 0, 0, 83,
1085
- 84, 85, 86, 97, 98, 99, 100, 101, 102, 103,
1086
- 104, 105, 106, 0, 107, 87, 88, 0, 0, 0,
1087
- 0, 0, 89, 90, 91, 92, 93, 94, 95, 96,
1088
- 0, 0, -146, 84, 85, 0, 0, 0, 99, 100,
1089
- 101, 102, 103, 104, 105, 106, 0, 107, 87, 88,
1090
- 0, 0, 0, 0, 0, -146, -146, -146, -146, -146,
1091
- -146, 95, 96, 0, 0, 0, 0, 0, 0, 0,
1092
- 0, -146, 100, 101, 102, 103, 104, 105, 106, 0,
1093
- 107
973
+ 0, 20, 21, 204, 22, 0, 4, 5, 6, 7,
974
+ 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
975
+ 10, 0, 0, 0, 11, 12, 0, 0, 0, 13,
976
+ 0, 14, 15, 0, 4, 5, 6, 7, 8, 0,
977
+ 0, 0, 0, 16, 9, 0, 0, 0, 10, 0,
978
+ 0, 0, 11, 12, 0, 17, 0, 13, 0, 14,
979
+ 15, 0, 18, 0, 19, 0, 20, 21, 0, 22,
980
+ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
981
+ 0, 0, 0, 17, 0, 0, 0, 0, 0, 122,
982
+ 18, 0, 19, 0, 20, 21, 0, 22, 4, 5,
983
+ 6, 7, 8, 0, 0, 0, 0, 0, 9, 0,
984
+ 0, 0, 10, 0, 0, 0, 11, 12, 0, 0,
985
+ 0, 13, 0, 14, 15, 0, 4, 5, 6, 7,
986
+ 8, 0, 0, 0, 0, 16, 9, 0, 0, 0,
987
+ 10, 0, 0, 0, 11, 12, 0, 17, 0, 13,
988
+ 0, 14, 15, 0, 18, 0, 19, 0, 20, 21,
989
+ 270, 22, 0, 16, 0, 0, 0, 0, 0, 0,
990
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
991
+ 0, 0, 18, 0, 19, 223, 20, 21, 224, 22,
992
+ 0, 52, 0, 0, 0, 0, 0, 59, 60, 61,
993
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
994
+ 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
995
+ 0, 0, 0, 0, 0, 16, 84, 85, 86, 87,
996
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
997
+ 0, 0, 88, 89, 225, 0, 226, 0, 0, 90,
998
+ 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
999
+ 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
1000
+ 104, 105, 106, 107, 0, 108, 84, 85, 86, 87,
1001
+ 237, 0, 0, 238, 0, 0, 0, 0, 0, 0,
1002
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
1003
+ 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
1004
+ 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
1005
+ 104, 105, 106, 107, 0, 108, 84, 85, 86, 87,
1006
+ 0, 0, 0, 142, 0, 0, 0, 0, 0, 0,
1007
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
1008
+ 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
1009
+ 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
1010
+ 104, 105, 106, 107, 0, 108, 84, 85, 86, 87,
1011
+ 0, 0, 0, 269, 0, 0, 0, 0, 0, 0,
1012
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
1013
+ 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
1014
+ 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
1015
+ 104, 105, 106, 107, 0, 108, 84, 85, 86, 87,
1016
+ 0, 0, 0, 293, 0, 0, 0, 0, 0, 0,
1017
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
1018
+ 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
1019
+ 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
1020
+ 104, 105, 106, 107, 0, 108, 309, 0, 310, 84,
1021
+ 85, 86, 87, 0, 0, 0, 0, 0, 0, 0,
1022
+ 0, 0, 0, 0, 0, 88, 89, 0, 0, 0,
1023
+ 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
1024
+ 0, 0, 0, 84, 85, 86, 87, 98, 99, 100,
1025
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 88,
1026
+ 89, 138, 0, 0, 0, 0, 90, 91, 92, 93,
1027
+ 94, 95, 96, 97, 0, 0, 0, 84, 85, 86,
1028
+ 87, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1029
+ 107, 0, 108, 88, 89, 216, 0, 0, 0, 0,
1030
+ 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
1031
+ 0, 84, 85, 86, 87, 98, 99, 100, 101, 102,
1032
+ 103, 104, 105, 106, 107, 0, 108, 88, 89, 286,
1033
+ 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
1034
+ 96, 97, 0, 0, 0, 84, 85, 86, 87, 98,
1035
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
1036
+ 108, 88, 89, 308, 0, 0, 0, 0, 90, 91,
1037
+ 92, 93, 94, 95, 96, 97, 0, 0, 0, 84,
1038
+ 85, 86, 87, 98, 99, 100, 101, 102, 103, 104,
1039
+ 105, 106, 107, 0, 108, 88, 89, 312, 0, 0,
1040
+ 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
1041
+ 0, 0, 0, 0, 0, 0, 0, 98, 99, 100,
1042
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 109,
1043
+ 84, 85, 86, 87, 0, 0, 0, 0, 0, 0,
1044
+ 0, 0, 0, 0, 0, 0, 88, 89, 0, 0,
1045
+ 0, 0, 0, 90, 91, 92, 93, 94, 95, 96,
1046
+ 97, 0, 0, 0, 0, 0, 0, 0, 98, 99,
1047
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
1048
+ 191, 84, 85, 86, 87, 0, 0, 0, 0, 0,
1049
+ 0, 0, 0, 0, 0, 0, 0, 88, 89, 0,
1050
+ 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
1051
+ 96, 97, 0, 0, 0, 0, 0, 0, 0, 98,
1052
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
1053
+ 108, 246, 84, 85, 86, 87, 0, 0, 0, 0,
1054
+ 0, 0, 0, 0, 0, 0, 0, 0, 88, 89,
1055
+ 0, 0, 0, 0, 0, 90, 91, 92, 93, 94,
1056
+ 95, 96, 97, 0, 0, 0, 0, 0, 0, 0,
1057
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1058
+ 0, 108, 297, 84, 85, 86, 87, 0, 0, 0,
1059
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,
1060
+ 89, 0, 0, 0, 0, 0, 90, 91, 92, 93,
1061
+ 94, 95, 96, 97, 0, 0, 0, 0, 0, 0,
1062
+ 0, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1063
+ 107, 0, 108, 298, 84, 85, 86, 87, 0, 0,
1064
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065
+ 88, 89, 0, 0, 0, 0, 0, 90, 91, 92,
1066
+ 93, 94, 95, 96, 97, 0, 0, 0, 0, 0,
1067
+ 0, 0, 98, 99, 100, 101, 102, 103, 104, 105,
1068
+ 106, 107, 0, 108, 302, 84, 85, 86, 87, 0,
1069
+ 0, 0, 0, 0, 0, 0, 247, 248, 0, 0,
1070
+ 0, 88, 89, 0, 0, 0, 0, 0, 90, 91,
1071
+ 92, 93, 94, 95, 96, 97, 0, 0, 0, 0,
1072
+ 0, 0, 0, 98, 99, 100, 101, 102, 103, 104,
1073
+ 105, 106, 107, 0, 108, 84, 85, 86, 87, 0,
1074
+ 0, 0, 0, 0, 0, 130, 0, 0, 0, 0,
1075
+ 0, 88, 89, 0, 0, 0, 0, 0, 90, 91,
1076
+ 92, 93, 94, 95, 96, 97, 0, 0, 0, 84,
1077
+ 85, 86, 87, 98, 99, 100, 101, 102, 103, 104,
1078
+ 105, 106, 107, 0, 108, 88, 89, 0, 0, 0,
1079
+ 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
1080
+ 0, 0, 0, 0, 280, 0, 0, 98, 99, 100,
1081
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 84,
1082
+ 85, 86, 87, 0, 0, 0, 0, 0, 0, 0,
1083
+ 0, 0, 0, 0, 295, 88, 89, 0, 0, 0,
1084
+ 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
1085
+ 0, 0, 0, 0, 0, 0, 0, 98, 99, 100,
1086
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 84,
1087
+ 85, 86, 87, 0, 0, 0, 0, 0, 0, 296,
1088
+ 0, 0, 0, 0, 0, 88, 89, 0, 0, 0,
1089
+ 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
1090
+ 0, 0, 0, 84, 85, 86, 87, 98, 99, 100,
1091
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 88,
1092
+ 89, 0, 0, 0, 0, 0, 90, 91, 92, 93,
1093
+ 94, 95, 96, 97, 0, 0, 0, 84, 85, 86,
1094
+ 87, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1095
+ 107, 0, 108, 88, 89, 0, 0, 0, 0, 0,
1096
+ 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
1097
+ 0, -152, 85, 86, 0, 0, 0, 100, 101, 102,
1098
+ 103, 104, 105, 106, 107, 0, 108, 88, 89, 0,
1099
+ 0, 0, 0, 0, -152, -152, -152, -152, -152, -152,
1100
+ 96, 97, 0, 0, 85, 86, 0, 0, 0, 0,
1101
+ 0, -152, 101, 102, 103, 104, 105, 106, 107, 88,
1102
+ 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1103
+ 0, 0, 96, 97, 0, 0, 0, 0, 0, 0,
1104
+ 0, 0, 0, 0, 101, 102, 103, 104, 105, 106,
1105
+ 107, 0, 108
1094
1106
  };
1095
1107
 
1096
1108
  static const yytype_int16 yycheck[] =
1097
1109
  {
1098
- 1, 1, 127, 128, 145, 146, 5, 11, 12, 10,
1099
- 7, 5, 13, 5, 13, 5, 17, 18, 30, 13,
1100
- 21, 13, 4, 4, 20, 176, 22, 4, 47, 30,
1101
- 139, 32, 28, 29, 47, 61, 47, 15, 64, 148,
1102
- 66, 59, 0, 40, 62, 53, 54, 55, 67, 57,
1103
- 175, 58, 65, 60, 31, 57, 67, 41, 42, 4,
1104
- 44, 61, 16, 17, 63, 64, 207, 40, 59, 63,
1105
- 64, 63, 64, 63, 64, 58, 77, 60, 28, 61,
1106
- 61, 61, 83, 84, 85, 86, 87, 88, 89, 90,
1110
+ 1, 4, 5, 6, 7, 8, 1, 11, 12, 10,
1111
+ 7, 4, 13, 5, 4, 146, 17, 18, 149, 150,
1112
+ 21, 13, 30, 180, 48, 48, 20, 30, 22, 30,
1113
+ 179, 32, 33, 48, 28, 29, 15, 48, 41, 143,
1114
+ 63, 31, 66, 0, 41, 68, 42, 43, 152, 45,
1115
+ 53, 4, 63, 68, 60, 62, 5, 60, 65, 62,
1116
+ 67, 64, 65, 5, 67, 42, 43, 62, 45, 62,
1117
+ 58, 13, 64, 65, 54, 55, 56, 78, 58, 16,
1118
+ 17, 212, 231, 84, 85, 86, 87, 88, 89, 90,
1107
1119
  91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1108
- 101, 102, 103, 104, 105, 106, 118, 258, 249, 250,
1109
- 251, 4, 113, 4, 115, 1, 112, 60, 10, 11,
1110
- 41, 42, 57, 44, 125, 126, 65, 252, 129, 254,
1111
- 62, 4, 257, 25, 62, 260, 62, 141, 67, 47,
1112
- 57, 145, 146, 139, 13, 46, 38, 39, 60, 4,
1113
- 57, 46, 148, 57, 65, 57, 4, 49, 50, 51,
1114
- 52, 53, 54, 55, 47, 57, 46, 4, 62, 59,
1115
- 59, 296, 4, 31, 62, 62, 57, 62, 62, 180,
1116
- 176, 57, 57, 62, 62, 57, 187, 118, 238, 123,
1117
- 300, 1, 187, 258, 4, 5, 6, 7, 8, -1,
1118
- 201, -1, 203, 207, 14, -1, -1, -1, 18, -1,
1119
- -1, -1, 22, 23, -1, -1, -1, 27, 219, 29,
1120
- 30, -1, -1, -1, 225, -1, -1, -1, -1, 230,
1121
- 40, 232, -1, -1, -1, -1, -1, -1, -1, -1,
1122
- 241, 242, 52, 244, 245, 249, 250, 251, -1, 59,
1123
- -1, 61, 62, 63, 64, 65, 66, -1, -1, -1,
1124
- -1, -1, 258, -1, -1, -1, -1, 268, -1, 270,
1125
- -1, -1, -1, -1, -1, -1, 0, 1, -1, -1,
1126
- 4, 5, -1, 7, -1, 9, 10, 11, 12, 13,
1127
- -1, -1, 293, 294, 295, 19, 20, 21, -1, -1,
1128
- 24, 25, 26, -1, 28, 306, -1, -1, 32, 33,
1129
- 34, 35, 36, 37, 38, 39, 40, -1, -1, 43,
1130
- -1, -1, 46, 47, 48, 49, 50, 51, 52, 53,
1131
- 54, 55, -1, 57, 58, -1, 60, -1, 62, 63,
1132
- 64, 65, 1, 67, -1, 4, 10, 11, 7, -1,
1133
- -1, -1, -1, -1, 13, 14, 15, 16, 17, 18,
1134
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1135
- 29, 30, 31, -1, 38, 39, -1, -1, -1, -1,
1136
- -1, 40, -1, -1, -1, 49, 50, 51, 52, 53,
1137
- 54, 55, -1, 57, -1, -1, -1, -1, 1, -1,
1138
- 59, 4, 61, -1, 7, -1, -1, -1, 67, -1,
1139
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1140
- 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1141
- -1, -1, -1, -1, -1, -1, -1, 40, -1, -1,
1142
- 1, -1, -1, 4, 5, 6, 7, 8, -1, -1,
1143
- -1, -1, -1, 14, -1, -1, 59, 18, 61, -1,
1144
- -1, 22, 23, -1, 67, -1, 27, 1, 29, 30,
1145
- 4, 5, 6, 7, 8, -1, -1, -1, -1, 40,
1146
- 14, -1, -1, -1, 18, -1, -1, -1, 22, 23,
1147
- -1, 52, -1, 27, -1, 29, 30, -1, 59, -1,
1148
- 61, -1, 63, 64, 65, 66, 40, -1, -1, -1,
1149
- -1, -1, -1, -1, -1, -1, -1, -1, 52, -1,
1150
- -1, -1, -1, -1, -1, 59, -1, 61, -1, 63,
1151
- 64, 1, 66, -1, 4, 5, 6, 7, 8, -1,
1152
- -1, -1, -1, -1, 14, -1, -1, -1, 18, -1,
1153
- -1, -1, 22, 23, -1, -1, -1, 27, 1, 29,
1154
- 30, 4, 5, 6, 7, 8, -1, -1, -1, -1,
1155
- 40, 14, -1, -1, -1, 18, -1, -1, -1, 22,
1156
- 23, -1, 52, -1, 27, -1, 29, 30, -1, 59,
1157
- -1, 61, -1, 63, 64, -1, 66, 40, -1, -1,
1158
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 52,
1159
- -1, -1, -1, -1, -1, -1, 59, -1, 61, -1,
1160
- 63, 64, 1, 66, -1, 4, 5, 6, 7, 8,
1161
- -1, -1, -1, -1, -1, 14, -1, -1, -1, 18,
1162
- -1, -1, -1, 22, 23, -1, -1, -1, 27, -1,
1163
- 29, 30, 4, 5, 6, 7, 8, -1, -1, -1,
1164
- -1, 40, 14, -1, -1, -1, 18, -1, -1, -1,
1165
- 22, 23, -1, 52, -1, 27, -1, 29, 30, -1,
1166
- 59, -1, 61, -1, 63, 64, -1, 66, 40, -1,
1120
+ 101, 102, 103, 104, 105, 106, 107, 264, 257, 62,
1121
+ 259, 260, 120, 114, 263, 64, 65, 266, 59, 113,
1122
+ 61, 41, 64, 65, 255, 256, 4, 60, 129, 130,
1123
+ 63, 59, 133, 61, 28, 5, 62, 4, 287, 4,
1124
+ 144, 1, 146, 13, 61, 149, 150, 131, 132, 143,
1125
+ 299, 58, 66, 1, 63, 4, 4, 63, 152, 7,
1126
+ 63, 48, 58, 68, 47, 13, 14, 15, 16, 17,
1127
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1128
+ 28, 29, 30, 31, 13, 186, 180, 58, 4, 40,
1129
+ 47, 192, 58, 41, 64, 65, 40, 4, 5, 6,
1130
+ 7, 8, 66, 58, 4, 206, 60, 208, 212, 47,
1131
+ 60, 63, 60, 4, 62, 58, 63, 63, 63, 4,
1132
+ 68, 63, 63, 30, 225, 40, 63, 58, 58, 63,
1133
+ 58, 232, 31, 29, 41, 120, 237, 127, 303, 244,
1134
+ 192, -1, 264, -1, -1, -1, 247, 248, -1, 250,
1135
+ 251, 255, 256, 60, -1, 62, -1, 64, 65, -1,
1136
+ 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1137
+ 264, -1, -1, -1, 275, -1, -1, -1, -1, 0,
1138
+ 1, -1, -1, 4, 5, -1, 7, -1, 9, 10,
1139
+ 11, 12, 13, -1, -1, 296, 297, 298, 19, 20,
1140
+ 21, -1, -1, 24, 25, 26, -1, 28, 309, -1,
1141
+ -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
1142
+ 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
1143
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
1144
+ 61, -1, 63, 64, 65, 66, 1, 68, -1, 4,
1145
+ -1, -1, 7, -1, -1, -1, -1, -1, 13, 14,
1146
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1147
+ 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1148
+ 10, 11, -1, -1, -1, -1, 41, -1, -1, 1,
1149
+ -1, -1, 4, 5, 6, 7, 8, -1, -1, -1,
1150
+ -1, -1, 14, -1, -1, 60, 18, 62, 38, 39,
1151
+ 22, 23, -1, 68, -1, 27, -1, 29, 30, -1,
1152
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 41,
1153
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1154
+ -1, 53, -1, -1, -1, -1, 10, 11, 60, -1,
1155
+ 62, 63, 64, 65, 66, 67, 1, -1, -1, 4,
1156
+ 5, 6, 7, 8, -1, -1, -1, -1, -1, 14,
1157
+ -1, -1, -1, 18, 38, 39, -1, 22, 23, -1,
1158
+ -1, -1, 27, -1, 29, 30, 50, 51, 52, 53,
1159
+ 54, 55, 56, -1, 58, -1, 41, -1, -1, -1,
1160
+ -1, -1, -1, -1, -1, -1, -1, -1, 53, -1,
1161
+ -1, -1, -1, -1, -1, 60, -1, 62, -1, 64,
1162
+ 65, 66, 67, 1, -1, -1, 4, 5, 6, 7,
1163
+ 8, -1, -1, -1, -1, -1, 14, -1, -1, -1,
1164
+ 18, -1, -1, -1, 22, 23, -1, -1, -1, 27,
1165
+ -1, 29, 30, -1, -1, -1, -1, -1, -1, -1,
1166
+ -1, -1, -1, 41, -1, -1, -1, -1, -1, -1,
1167
+ -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
1168
+ -1, -1, 60, -1, 62, -1, 64, 65, 1, 67,
1169
+ -1, 4, 5, 6, 7, 8, -1, -1, -1, -1,
1170
+ -1, 14, -1, -1, -1, 18, -1, -1, -1, 22,
1171
+ 23, -1, -1, -1, 27, -1, 29, 30, -1, -1,
1172
+ -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
1167
1173
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1168
- 52, -1, -1, -1, -1, -1, 58, 59, -1, 61,
1169
- -1, 63, 64, -1, 66, 4, 5, 6, 7, 8,
1170
- -1, -1, -1, -1, -1, 14, -1, -1, -1, 18,
1171
- -1, -1, -1, 22, 23, -1, -1, -1, 27, -1,
1172
- 29, 30, 4, 5, 6, 7, 8, -1, -1, -1,
1173
- -1, 40, 14, -1, -1, -1, 18, -1, -1, -1,
1174
- 22, 23, -1, 52, -1, 27, -1, 29, 30, -1,
1175
- 59, -1, 61, -1, 63, 64, 65, 66, 40, -1,
1174
+ 53, -1, -1, -1, -1, -1, -1, 60, -1, 62,
1175
+ -1, 64, 65, 1, 67, -1, 4, 5, 6, 7,
1176
+ 8, -1, -1, -1, -1, -1, 14, -1, -1, -1,
1177
+ 18, -1, -1, -1, 22, 23, -1, -1, -1, 27,
1178
+ -1, 29, 30, -1, 4, 5, 6, 7, 8, -1,
1179
+ -1, -1, -1, 41, 14, -1, -1, -1, 18, -1,
1180
+ -1, -1, 22, 23, -1, 53, -1, 27, -1, 29,
1181
+ 30, -1, 60, -1, 62, -1, 64, 65, -1, 67,
1182
+ -1, 41, -1, -1, -1, -1, -1, -1, -1, -1,
1183
+ -1, -1, -1, 53, -1, -1, -1, -1, -1, 59,
1184
+ 60, -1, 62, -1, 64, 65, -1, 67, 4, 5,
1185
+ 6, 7, 8, -1, -1, -1, -1, -1, 14, -1,
1186
+ -1, -1, 18, -1, -1, -1, 22, 23, -1, -1,
1187
+ -1, 27, -1, 29, 30, -1, 4, 5, 6, 7,
1188
+ 8, -1, -1, -1, -1, 41, 14, -1, -1, -1,
1189
+ 18, -1, -1, -1, 22, 23, -1, 53, -1, 27,
1190
+ -1, 29, 30, -1, 60, -1, 62, -1, 64, 65,
1191
+ 66, 67, -1, 41, -1, -1, -1, -1, -1, -1,
1192
+ -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
1193
+ -1, -1, 60, -1, 62, 1, 64, 65, 4, 67,
1194
+ -1, 7, -1, -1, -1, -1, -1, 13, 14, 15,
1195
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1196
+ 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1197
+ -1, -1, -1, -1, -1, 41, 9, 10, 11, 12,
1176
1198
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1177
- 52, -1, -1, -1, -1, -1, 58, 59, -1, 61,
1178
- -1, 63, 64, -1, 66, 4, 5, 6, 7, 8,
1179
- -1, -1, -1, -1, -1, 14, -1, -1, -1, 18,
1180
- -1, -1, -1, 22, 23, -1, -1, -1, 27, -1,
1181
- 29, 30, 4, 5, 6, 7, 8, -1, -1, -1,
1182
- -1, 40, 14, -1, -1, -1, 18, -1, -1, -1,
1183
- 22, 23, -1, 52, -1, 27, -1, 29, 30, 58,
1184
- 59, -1, 61, -1, 63, 64, -1, 66, 40, 4,
1185
- 5, 6, 7, 8, -1, 4, 5, 6, 7, 8,
1186
- 52, -1, -1, -1, -1, -1, -1, 59, -1, 61,
1187
- -1, 63, 64, -1, 66, 30, -1, -1, -1, -1,
1188
- -1, 30, -1, -1, -1, 40, -1, -1, -1, -1,
1189
- -1, 40, -1, -1, -1, -1, -1, 52, -1, -1,
1190
- -1, -1, -1, -1, 59, -1, 61, -1, 63, 64,
1191
- 59, 66, 61, 4, 63, 64, 7, 66, 10, 11,
1192
- -1, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1193
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1194
- 31, -1, -1, -1, -1, -1, 38, 39, -1, 40,
1195
- 9, 10, 11, 12, -1, -1, -1, 49, 50, 51,
1196
- 52, 53, 54, 55, -1, 57, 25, 26, 59, -1,
1197
- 61, -1, -1, 32, 33, 34, 35, 36, 37, 38,
1198
- 39, -1, -1, -1, -1, -1, -1, 46, 47, 48,
1199
- 49, 50, 51, 52, 53, 54, 55, -1, 57, 9,
1200
- 10, 11, 12, 62, -1, -1, 65, -1, -1, -1,
1199
+ -1, -1, 25, 26, 60, -1, 62, -1, -1, 32,
1200
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1201
+ -1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
1202
+ 53, 54, 55, 56, -1, 58, 9, 10, 11, 12,
1203
+ 63, -1, -1, 66, -1, -1, -1, -1, -1, -1,
1204
+ -1, -1, 25, 26, -1, -1, -1, -1, -1, 32,
1205
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1206
+ -1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
1207
+ 53, 54, 55, 56, -1, 58, 9, 10, 11, 12,
1208
+ -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
1209
+ -1, -1, 25, 26, -1, -1, -1, -1, -1, 32,
1210
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1211
+ -1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
1212
+ 53, 54, 55, 56, -1, 58, 9, 10, 11, 12,
1213
+ -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
1214
+ -1, -1, 25, 26, -1, -1, -1, -1, -1, 32,
1215
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1216
+ -1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
1217
+ 53, 54, 55, 56, -1, 58, 9, 10, 11, 12,
1218
+ -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
1219
+ -1, -1, 25, 26, -1, -1, -1, -1, -1, 32,
1220
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1221
+ -1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
1222
+ 53, 54, 55, 56, -1, 58, 59, -1, 61, 9,
1223
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
1201
1224
  -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
1202
1225
  -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
1203
- -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
1204
- 50, 51, 52, 53, 54, 55, -1, 57, 9, 10,
1205
- 11, 12, -1, -1, -1, 65, -1, -1, -1, -1,
1206
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
1207
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
1208
- -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
1209
- 51, 52, 53, 54, 55, -1, 57, 9, 10, 11,
1210
- 12, -1, -1, -1, 65, -1, -1, -1, -1, -1,
1211
- -1, -1, -1, 25, 26, -1, -1, -1, -1, -1,
1226
+ -1, -1, -1, 9, 10, 11, 12, 47, 48, 49,
1227
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 25,
1228
+ 26, 61, -1, -1, -1, -1, 32, 33, 34, 35,
1229
+ 36, 37, 38, 39, -1, -1, -1, 9, 10, 11,
1230
+ 12, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1231
+ 56, -1, 58, 25, 26, 61, -1, -1, -1, -1,
1212
1232
  32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
1213
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
1214
- 52, 53, 54, 55, -1, 57, 9, 10, 11, 12,
1215
- -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
1216
- -1, -1, 25, 26, -1, -1, -1, -1, -1, 32,
1217
- 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
1218
- -1, -1, -1, 46, 47, 48, 49, 50, 51, 52,
1219
- 53, 54, 55, -1, 57, 58, -1, 60, 9, 10,
1220
- 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
1221
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
1222
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
1223
- -1, 9, 10, 11, 12, 46, 47, 48, 49, 50,
1224
- 51, 52, 53, 54, 55, -1, 57, 25, 26, 60,
1233
+ -1, 9, 10, 11, 12, 47, 48, 49, 50, 51,
1234
+ 52, 53, 54, 55, 56, -1, 58, 25, 26, 61,
1225
1235
  -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
1226
- 38, 39, -1, -1, 9, 10, 11, 12, 46, 47,
1227
- 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
1228
- 25, 26, 60, -1, -1, -1, -1, 32, 33, 34,
1229
- 35, 36, 37, 38, 39, -1, -1, 9, 10, 11,
1230
- 12, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1231
- 55, -1, 57, 25, 26, 60, -1, -1, -1, -1,
1232
- 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
1233
- 9, 10, 11, 12, 46, 47, 48, 49, 50, 51,
1234
- 52, 53, 54, 55, -1, 57, 25, 26, 60, -1,
1236
+ 38, 39, -1, -1, -1, 9, 10, 11, 12, 47,
1237
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
1238
+ 58, 25, 26, 61, -1, -1, -1, -1, 32, 33,
1239
+ 34, 35, 36, 37, 38, 39, -1, -1, -1, 9,
1240
+ 10, 11, 12, 47, 48, 49, 50, 51, 52, 53,
1241
+ 54, 55, 56, -1, 58, 25, 26, 61, -1, -1,
1242
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
1243
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
1244
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
1245
+ 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
1246
+ -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
1235
1247
  -1, -1, -1, 32, 33, 34, 35, 36, 37, 38,
1236
- 39, -1, -1, 9, 10, 11, 12, 46, 47, 48,
1237
- 49, 50, 51, 52, 53, 54, 55, -1, 57, 25,
1238
- 26, 60, -1, -1, -1, -1, 32, 33, 34, 35,
1239
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1240
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1241
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1242
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1243
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1244
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1245
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1246
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1247
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1248
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1249
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1250
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1251
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1252
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1253
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1254
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1255
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1256
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1257
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1258
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1259
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1260
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1261
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1262
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1263
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1264
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1265
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1266
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1267
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1268
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1269
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1270
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1271
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1248
+ 39, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1249
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
1250
+ 59, 9, 10, 11, 12, -1, -1, -1, -1, -1,
1251
+ -1, -1, -1, -1, -1, -1, -1, 25, 26, -1,
1252
+ -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
1253
+ 38, 39, -1, -1, -1, -1, -1, -1, -1, 47,
1254
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
1255
+ 58, 59, 9, 10, 11, 12, -1, -1, -1, -1,
1256
+ -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
1257
+ -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
1258
+ 37, 38, 39, -1, -1, -1, -1, -1, -1, -1,
1259
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1260
+ -1, 58, 59, 9, 10, 11, 12, -1, -1, -1,
1272
1261
  -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
1273
1262
  26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1274
1263
  36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1275
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1276
- -1, 57, 58, 9, 10, 11, 12, -1, -1, -1,
1277
- -1, -1, -1, -1, 20, 21, -1, -1, -1, 25,
1278
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1279
- 36, 37, 38, 39, -1, -1, -1, -1, -1, -1,
1280
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1281
- -1, 57, 9, 10, 11, 12, -1, -1, -1, -1,
1282
- -1, -1, 19, -1, -1, -1, -1, -1, 25, 26,
1283
- -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
1284
- 37, 38, 39, -1, -1, 9, 10, 11, 12, 46,
1285
- 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
1286
- 57, 25, 26, -1, -1, -1, -1, -1, 32, 33,
1287
- 34, 35, 36, 37, 38, 39, -1, -1, -1, 43,
1288
- -1, -1, 46, 47, 48, 49, 50, 51, 52, 53,
1289
- 54, 55, -1, 57, 9, 10, 11, 12, -1, -1,
1290
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
1264
+ -1, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1265
+ 56, -1, 58, 59, 9, 10, 11, 12, -1, -1,
1266
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1291
1267
  25, 26, -1, -1, -1, -1, -1, 32, 33, 34,
1292
1268
  35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
1293
- -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1294
- 55, -1, 57, 9, 10, 11, 12, -1, -1, -1,
1295
- -1, -1, -1, 19, -1, -1, -1, -1, -1, 25,
1296
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1297
- 36, 37, 38, 39, -1, -1, 9, 10, 11, 12,
1298
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1299
- -1, 57, 25, 26, -1, -1, -1, -1, -1, 32,
1300
- 33, 34, 35, 36, 37, 38, 39, -1, -1, 9,
1301
- 10, 11, 12, 46, 47, 48, 49, 50, 51, 52,
1302
- 53, 54, 55, -1, 57, 25, 26, -1, -1, -1,
1269
+ -1, -1, 47, 48, 49, 50, 51, 52, 53, 54,
1270
+ 55, 56, -1, 58, 59, 9, 10, 11, 12, -1,
1271
+ -1, -1, -1, -1, -1, -1, 20, 21, -1, -1,
1272
+ -1, 25, 26, -1, -1, -1, -1, -1, 32, 33,
1273
+ 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
1274
+ -1, -1, -1, 47, 48, 49, 50, 51, 52, 53,
1275
+ 54, 55, 56, -1, 58, 9, 10, 11, 12, -1,
1276
+ -1, -1, -1, -1, -1, 19, -1, -1, -1, -1,
1277
+ -1, 25, 26, -1, -1, -1, -1, -1, 32, 33,
1278
+ 34, 35, 36, 37, 38, 39, -1, -1, -1, 9,
1279
+ 10, 11, 12, 47, 48, 49, 50, 51, 52, 53,
1280
+ 54, 55, 56, -1, 58, 25, 26, -1, -1, -1,
1303
1281
  -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
1304
- -1, -1, 9, 10, 11, -1, -1, -1, 48, 49,
1305
- 50, 51, 52, 53, 54, 55, -1, 57, 25, 26,
1306
- -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
1307
- 37, 38, 39, -1, -1, -1, -1, -1, -1, -1,
1308
- -1, 48, 49, 50, 51, 52, 53, 54, 55, -1,
1309
- 57
1282
+ -1, -1, -1, -1, 44, -1, -1, 47, 48, 49,
1283
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
1284
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
1285
+ -1, -1, -1, -1, 24, 25, 26, -1, -1, -1,
1286
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
1287
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
1288
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
1289
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, 19,
1290
+ -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
1291
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
1292
+ -1, -1, -1, 9, 10, 11, 12, 47, 48, 49,
1293
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 25,
1294
+ 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
1295
+ 36, 37, 38, 39, -1, -1, -1, 9, 10, 11,
1296
+ 12, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1297
+ 56, -1, 58, 25, 26, -1, -1, -1, -1, -1,
1298
+ 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
1299
+ -1, 9, 10, 11, -1, -1, -1, 49, 50, 51,
1300
+ 52, 53, 54, 55, 56, -1, 58, 25, 26, -1,
1301
+ -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
1302
+ 38, 39, -1, -1, 10, 11, -1, -1, -1, -1,
1303
+ -1, 49, 50, 51, 52, 53, 54, 55, 56, 25,
1304
+ 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1305
+ -1, -1, 38, 39, -1, -1, -1, -1, -1, -1,
1306
+ -1, -1, -1, -1, 50, 51, 52, 53, 54, 55,
1307
+ 56, -1, 58
1310
1308
  };
1311
1309
 
1312
1310
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1313
1311
  symbol of state STATE-NUM. */
1314
1312
  static const yytype_uint8 yystos[] =
1315
1313
  {
1316
- 0, 15, 69, 70, 4, 5, 6, 7, 8, 14,
1317
- 18, 22, 23, 27, 29, 30, 40, 52, 59, 61,
1318
- 63, 64, 66, 73, 75, 78, 84, 0, 16, 17,
1319
- 71, 74, 59, 57, 40, 4, 73, 84, 84, 73,
1320
- 61, 1, 61, 79, 73, 1, 73, 4, 31, 1,
1321
- 4, 7, 78, 1, 65, 73, 1, 4, 13, 14,
1322
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1323
- 25, 26, 27, 28, 29, 30, 31, 59, 61, 78,
1324
- 91, 92, 93, 9, 10, 11, 12, 25, 26, 32,
1325
- 33, 34, 35, 36, 37, 38, 39, 46, 47, 48,
1326
- 49, 50, 51, 52, 53, 54, 55, 57, 58, 73,
1327
- 5, 13, 63, 64, 78, 78, 72, 73, 75, 71,
1328
- 73, 85, 86, 80, 59, 62, 19, 13, 13, 28,
1329
- 4, 4, 81, 60, 60, 1, 57, 65, 65, 47,
1330
- 67, 62, 1, 73, 4, 62, 62, 67, 47, 73,
1331
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1332
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1333
- 73, 73, 73, 57, 61, 64, 66, 87, 78, 1,
1334
- 62, 65, 73, 13, 58, 73, 72, 58, 60, 81,
1335
- 4, 61, 76, 77, 73, 1, 73, 87, 87, 1,
1336
- 73, 46, 41, 42, 44, 1, 92, 52, 83, 84,
1337
- 60, 60, 83, 83, 92, 4, 87, 88, 4, 59,
1338
- 61, 78, 89, 90, 91, 46, 57, 65, 73, 57,
1339
- 62, 65, 4, 61, 58, 86, 44, 4, 58, 60,
1340
- 58, 20, 21, 82, 59, 59, 73, 73, 83, 46,
1341
- 62, 62, 47, 65, 62, 73, 4, 62, 47, 67,
1342
- 62, 73, 65, 65, 73, 57, 58, 73, 4, 77,
1343
- 62, 73, 73, 73, 73, 43, 83, 83, 83, 87,
1344
- 87, 60, 87, 90, 87, 57, 57, 65, 58, 58,
1345
- 73, 73, 24, 19, 58, 58, 62, 57, 58, 58,
1346
- 73, 73, 73, 87, 82, 60, 58, 60, 73, 60
1314
+ 0, 15, 70, 71, 4, 5, 6, 7, 8, 14,
1315
+ 18, 22, 23, 27, 29, 30, 41, 53, 60, 62,
1316
+ 64, 65, 67, 74, 78, 81, 87, 0, 16, 17,
1317
+ 72, 75, 76, 60, 58, 41, 4, 74, 87, 87,
1318
+ 74, 62, 1, 62, 82, 74, 1, 74, 4, 31,
1319
+ 1, 4, 7, 81, 1, 66, 74, 1, 4, 13,
1320
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1321
+ 24, 25, 26, 27, 28, 29, 30, 31, 60, 62,
1322
+ 81, 96, 97, 98, 9, 10, 11, 12, 25, 26,
1323
+ 32, 33, 34, 35, 36, 37, 38, 39, 47, 48,
1324
+ 49, 50, 51, 52, 53, 54, 55, 56, 58, 59,
1325
+ 74, 5, 13, 64, 65, 77, 81, 77, 73, 74,
1326
+ 78, 72, 59, 74, 74, 88, 89, 83, 60, 63,
1327
+ 19, 13, 13, 28, 4, 4, 84, 61, 61, 1,
1328
+ 58, 66, 66, 48, 63, 68, 63, 74, 4, 63,
1329
+ 63, 68, 48, 74, 74, 74, 74, 74, 74, 74,
1330
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
1331
+ 74, 74, 74, 74, 74, 74, 74, 58, 62, 65,
1332
+ 67, 90, 91, 92, 81, 1, 63, 66, 74, 13,
1333
+ 73, 59, 59, 61, 84, 4, 62, 79, 80, 74,
1334
+ 1, 74, 91, 91, 1, 74, 47, 42, 43, 45,
1335
+ 1, 97, 53, 86, 87, 86, 61, 86, 86, 97,
1336
+ 4, 92, 93, 1, 4, 60, 62, 81, 94, 95,
1337
+ 96, 40, 47, 58, 66, 74, 58, 63, 66, 4,
1338
+ 62, 89, 45, 4, 59, 61, 59, 20, 21, 85,
1339
+ 60, 60, 74, 74, 86, 47, 63, 48, 66, 63,
1340
+ 63, 74, 4, 63, 48, 68, 63, 92, 74, 66,
1341
+ 66, 74, 58, 4, 80, 63, 74, 74, 74, 74,
1342
+ 44, 86, 86, 92, 92, 92, 61, 63, 92, 95,
1343
+ 92, 58, 58, 66, 74, 24, 19, 59, 59, 63,
1344
+ 92, 58, 59, 74, 74, 74, 92, 85, 61, 59,
1345
+ 61, 74, 61
1347
1346
  };
1348
1347
 
1349
1348
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1350
1349
  static const yytype_uint8 yyr1[] =
1351
1350
  {
1352
- 0, 68, 69, 69, 70, 70, 71, 71, 72, 72,
1353
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1354
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1355
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1356
- 73, 73, 73, 73, 73, 73, 73, 73, 74, 74,
1357
- 74, 74, 74, 74, 75, 75, 76, 76, 77, 77,
1358
- 79, 78, 80, 78, 81, 81, 81, 82, 82, 83,
1359
- 83, 83, 84, 84, 84, 84, 84, 84, 84, 84,
1360
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
1361
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
1362
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
1363
- 84, 85, 85, 86, 87, 87, 87, 88, 88, 89,
1364
- 89, 90, 90, 90, 90, 90, 91, 91, 91, 91,
1365
- 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
1366
- 91, 91, 91, 91, 91, 92, 92, 92, 92, 93,
1367
- 93, 93, 93, 93, 93, 93, 93
1351
+ 0, 69, 70, 70, 71, 71, 72, 72, 73, 73,
1352
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
1353
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
1354
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
1355
+ 74, 74, 74, 74, 74, 74, 74, 74, 75, 75,
1356
+ 76, 76, 76, 77, 78, 78, 79, 79, 80, 80,
1357
+ 82, 81, 83, 81, 84, 84, 84, 85, 85, 86,
1358
+ 86, 86, 87, 87, 87, 87, 87, 87, 87, 87,
1359
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1360
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1361
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1362
+ 87, 88, 88, 89, 90, 90, 91, 91, 92, 92,
1363
+ 92, 93, 93, 94, 94, 95, 95, 95, 95, 95,
1364
+ 95, 95, 96, 96, 96, 96, 96, 96, 96, 96,
1365
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1366
+ 96, 97, 97, 97, 97, 98, 98, 98, 98, 98,
1367
+ 98, 98, 98
1368
1368
  };
1369
1369
 
1370
1370
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1374,18 +1374,19 @@ static const yytype_uint8 yyr2[] =
1374
1374
  2, 5, 9, 11, 9, 5, 4, 4, 2, 4,
1375
1375
  5, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1376
1376
  3, 3, 2, 3, 3, 3, 3, 3, 3, 3,
1377
- 3, 3, 3, 3, 3, 3, 3, 1, 6, 5,
1378
- 3, 6, 4, 7, 5, 8, 1, 3, 2, 1,
1377
+ 3, 3, 3, 3, 3, 3, 3, 1, 2, 3,
1378
+ 5, 4, 2, 1, 5, 8, 1, 3, 2, 1,
1379
1379
  0, 4, 0, 5, 0, 2, 4, 5, 3, 3,
1380
1380
  2, 1, 1, 1, 3, 2, 3, 2, 4, 3,
1381
1381
  2, 1, 3, 2, 2, 3, 5, 4, 4, 3,
1382
1382
  7, 6, 6, 6, 5, 5, 1, 1, 1, 3,
1383
1383
  3, 2, 3, 2, 2, 1, 4, 3, 3, 4,
1384
- 3, 1, 3, 1, 2, 3, 3, 1, 3, 1,
1385
- 3, 2, 3, 3, 3, 5, 1, 1, 1, 1,
1384
+ 3, 1, 3, 1, 3, 1, 3, 1, 2, 3,
1385
+ 3, 1, 3, 1, 3, 2, 4, 3, 3, 3,
1386
+ 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1386
1387
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1387
- 1, 1, 1, 1, 1, 0, 1, 3, 3, 3,
1388
- 3, 3, 1, 2, 1, 5, 5
1388
+ 1, 0, 1, 3, 3, 3, 3, 3, 1, 2,
1389
+ 1, 5, 3
1389
1390
  };
1390
1391
 
1391
1392
 
@@ -1886,165 +1887,189 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
1886
1887
  switch (yytype)
1887
1888
  {
1888
1889
  case 4: /* IDENT */
1889
- #line 36 "parser.y" /* yacc.c:1257 */
1890
+ #line 36 "src/parser.y" /* yacc.c:1257 */
1890
1891
  { jv_free(((*yyvaluep).literal)); }
1891
- #line 1892 "parser.c" /* yacc.c:1257 */
1892
+ #line 1893 "src/parser.c" /* yacc.c:1257 */
1892
1893
  break;
1893
1894
 
1894
1895
  case 5: /* FIELD */
1895
- #line 36 "parser.y" /* yacc.c:1257 */
1896
+ #line 36 "src/parser.y" /* yacc.c:1257 */
1896
1897
  { jv_free(((*yyvaluep).literal)); }
1897
- #line 1898 "parser.c" /* yacc.c:1257 */
1898
+ #line 1899 "src/parser.c" /* yacc.c:1257 */
1898
1899
  break;
1899
1900
 
1900
1901
  case 6: /* LITERAL */
1901
- #line 36 "parser.y" /* yacc.c:1257 */
1902
+ #line 36 "src/parser.y" /* yacc.c:1257 */
1902
1903
  { jv_free(((*yyvaluep).literal)); }
1903
- #line 1904 "parser.c" /* yacc.c:1257 */
1904
+ #line 1905 "src/parser.c" /* yacc.c:1257 */
1904
1905
  break;
1905
1906
 
1906
1907
  case 7: /* FORMAT */
1907
- #line 36 "parser.y" /* yacc.c:1257 */
1908
+ #line 36 "src/parser.y" /* yacc.c:1257 */
1908
1909
  { jv_free(((*yyvaluep).literal)); }
1909
- #line 1910 "parser.c" /* yacc.c:1257 */
1910
+ #line 1911 "src/parser.c" /* yacc.c:1257 */
1910
1911
  break;
1911
1912
 
1912
- case 41: /* QQSTRING_TEXT */
1913
- #line 36 "parser.y" /* yacc.c:1257 */
1913
+ case 42: /* QQSTRING_TEXT */
1914
+ #line 36 "src/parser.y" /* yacc.c:1257 */
1914
1915
  { jv_free(((*yyvaluep).literal)); }
1915
- #line 1916 "parser.c" /* yacc.c:1257 */
1916
+ #line 1917 "src/parser.c" /* yacc.c:1257 */
1916
1917
  break;
1917
1918
 
1918
- case 70: /* Module */
1919
- #line 37 "parser.y" /* yacc.c:1257 */
1919
+ case 71: /* Module */
1920
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1920
1921
  { block_free(((*yyvaluep).blk)); }
1921
- #line 1922 "parser.c" /* yacc.c:1257 */
1922
+ #line 1923 "src/parser.c" /* yacc.c:1257 */
1922
1923
  break;
1923
1924
 
1924
- case 71: /* Imports */
1925
- #line 37 "parser.y" /* yacc.c:1257 */
1925
+ case 72: /* Imports */
1926
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1926
1927
  { block_free(((*yyvaluep).blk)); }
1927
- #line 1928 "parser.c" /* yacc.c:1257 */
1928
+ #line 1929 "src/parser.c" /* yacc.c:1257 */
1928
1929
  break;
1929
1930
 
1930
- case 72: /* FuncDefs */
1931
- #line 37 "parser.y" /* yacc.c:1257 */
1931
+ case 73: /* FuncDefs */
1932
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1932
1933
  { block_free(((*yyvaluep).blk)); }
1933
- #line 1934 "parser.c" /* yacc.c:1257 */
1934
+ #line 1935 "src/parser.c" /* yacc.c:1257 */
1934
1935
  break;
1935
1936
 
1936
- case 73: /* Exp */
1937
- #line 37 "parser.y" /* yacc.c:1257 */
1937
+ case 74: /* Exp */
1938
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1938
1939
  { block_free(((*yyvaluep).blk)); }
1939
- #line 1940 "parser.c" /* yacc.c:1257 */
1940
+ #line 1941 "src/parser.c" /* yacc.c:1257 */
1940
1941
  break;
1941
1942
 
1942
- case 74: /* Import */
1943
- #line 37 "parser.y" /* yacc.c:1257 */
1943
+ case 75: /* Import */
1944
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1944
1945
  { block_free(((*yyvaluep).blk)); }
1945
- #line 1946 "parser.c" /* yacc.c:1257 */
1946
+ #line 1947 "src/parser.c" /* yacc.c:1257 */
1946
1947
  break;
1947
1948
 
1948
- case 75: /* FuncDef */
1949
- #line 37 "parser.y" /* yacc.c:1257 */
1949
+ case 76: /* ImportWhat */
1950
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1950
1951
  { block_free(((*yyvaluep).blk)); }
1951
- #line 1952 "parser.c" /* yacc.c:1257 */
1952
+ #line 1953 "src/parser.c" /* yacc.c:1257 */
1952
1953
  break;
1953
1954
 
1954
- case 76: /* Params */
1955
- #line 37 "parser.y" /* yacc.c:1257 */
1955
+ case 77: /* ImportFrom */
1956
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1956
1957
  { block_free(((*yyvaluep).blk)); }
1957
- #line 1958 "parser.c" /* yacc.c:1257 */
1958
+ #line 1959 "src/parser.c" /* yacc.c:1257 */
1958
1959
  break;
1959
1960
 
1960
- case 77: /* Param */
1961
- #line 37 "parser.y" /* yacc.c:1257 */
1961
+ case 78: /* FuncDef */
1962
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1962
1963
  { block_free(((*yyvaluep).blk)); }
1963
- #line 1964 "parser.c" /* yacc.c:1257 */
1964
+ #line 1965 "src/parser.c" /* yacc.c:1257 */
1964
1965
  break;
1965
1966
 
1966
- case 78: /* String */
1967
- #line 37 "parser.y" /* yacc.c:1257 */
1967
+ case 79: /* Params */
1968
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1968
1969
  { block_free(((*yyvaluep).blk)); }
1969
- #line 1970 "parser.c" /* yacc.c:1257 */
1970
+ #line 1971 "src/parser.c" /* yacc.c:1257 */
1970
1971
  break;
1971
1972
 
1972
- case 81: /* QQString */
1973
- #line 37 "parser.y" /* yacc.c:1257 */
1973
+ case 80: /* Param */
1974
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1974
1975
  { block_free(((*yyvaluep).blk)); }
1975
- #line 1976 "parser.c" /* yacc.c:1257 */
1976
+ #line 1977 "src/parser.c" /* yacc.c:1257 */
1976
1977
  break;
1977
1978
 
1978
- case 82: /* ElseBody */
1979
- #line 37 "parser.y" /* yacc.c:1257 */
1979
+ case 81: /* String */
1980
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1980
1981
  { block_free(((*yyvaluep).blk)); }
1981
- #line 1982 "parser.c" /* yacc.c:1257 */
1982
+ #line 1983 "src/parser.c" /* yacc.c:1257 */
1982
1983
  break;
1983
1984
 
1984
- case 83: /* ExpD */
1985
- #line 37 "parser.y" /* yacc.c:1257 */
1985
+ case 84: /* QQString */
1986
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1986
1987
  { block_free(((*yyvaluep).blk)); }
1987
- #line 1988 "parser.c" /* yacc.c:1257 */
1988
+ #line 1989 "src/parser.c" /* yacc.c:1257 */
1988
1989
  break;
1989
1990
 
1990
- case 84: /* Term */
1991
- #line 37 "parser.y" /* yacc.c:1257 */
1991
+ case 85: /* ElseBody */
1992
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1992
1993
  { block_free(((*yyvaluep).blk)); }
1993
- #line 1994 "parser.c" /* yacc.c:1257 */
1994
+ #line 1995 "src/parser.c" /* yacc.c:1257 */
1994
1995
  break;
1995
1996
 
1996
- case 85: /* Args */
1997
- #line 37 "parser.y" /* yacc.c:1257 */
1997
+ case 86: /* ExpD */
1998
+ #line 37 "src/parser.y" /* yacc.c:1257 */
1998
1999
  { block_free(((*yyvaluep).blk)); }
1999
- #line 2000 "parser.c" /* yacc.c:1257 */
2000
+ #line 2001 "src/parser.c" /* yacc.c:1257 */
2000
2001
  break;
2001
2002
 
2002
- case 86: /* Arg */
2003
- #line 37 "parser.y" /* yacc.c:1257 */
2003
+ case 87: /* Term */
2004
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2004
2005
  { block_free(((*yyvaluep).blk)); }
2005
- #line 2006 "parser.c" /* yacc.c:1257 */
2006
+ #line 2007 "src/parser.c" /* yacc.c:1257 */
2006
2007
  break;
2007
2008
 
2008
- case 87: /* Pattern */
2009
- #line 37 "parser.y" /* yacc.c:1257 */
2009
+ case 88: /* Args */
2010
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2010
2011
  { block_free(((*yyvaluep).blk)); }
2011
- #line 2012 "parser.c" /* yacc.c:1257 */
2012
+ #line 2013 "src/parser.c" /* yacc.c:1257 */
2012
2013
  break;
2013
2014
 
2014
- case 88: /* ArrayPats */
2015
- #line 37 "parser.y" /* yacc.c:1257 */
2015
+ case 89: /* Arg */
2016
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2016
2017
  { block_free(((*yyvaluep).blk)); }
2017
- #line 2018 "parser.c" /* yacc.c:1257 */
2018
+ #line 2019 "src/parser.c" /* yacc.c:1257 */
2018
2019
  break;
2019
2020
 
2020
- case 89: /* ObjPats */
2021
- #line 37 "parser.y" /* yacc.c:1257 */
2021
+ case 90: /* RepPatterns */
2022
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2022
2023
  { block_free(((*yyvaluep).blk)); }
2023
- #line 2024 "parser.c" /* yacc.c:1257 */
2024
+ #line 2025 "src/parser.c" /* yacc.c:1257 */
2024
2025
  break;
2025
2026
 
2026
- case 90: /* ObjPat */
2027
- #line 37 "parser.y" /* yacc.c:1257 */
2027
+ case 91: /* Patterns */
2028
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2028
2029
  { block_free(((*yyvaluep).blk)); }
2029
- #line 2030 "parser.c" /* yacc.c:1257 */
2030
+ #line 2031 "src/parser.c" /* yacc.c:1257 */
2030
2031
  break;
2031
2032
 
2032
- case 91: /* Keyword */
2033
- #line 36 "parser.y" /* yacc.c:1257 */
2033
+ case 92: /* Pattern */
2034
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2035
+ { block_free(((*yyvaluep).blk)); }
2036
+ #line 2037 "src/parser.c" /* yacc.c:1257 */
2037
+ break;
2038
+
2039
+ case 93: /* ArrayPats */
2040
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2041
+ { block_free(((*yyvaluep).blk)); }
2042
+ #line 2043 "src/parser.c" /* yacc.c:1257 */
2043
+ break;
2044
+
2045
+ case 94: /* ObjPats */
2046
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2047
+ { block_free(((*yyvaluep).blk)); }
2048
+ #line 2049 "src/parser.c" /* yacc.c:1257 */
2049
+ break;
2050
+
2051
+ case 95: /* ObjPat */
2052
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2053
+ { block_free(((*yyvaluep).blk)); }
2054
+ #line 2055 "src/parser.c" /* yacc.c:1257 */
2055
+ break;
2056
+
2057
+ case 96: /* Keyword */
2058
+ #line 36 "src/parser.y" /* yacc.c:1257 */
2034
2059
  { jv_free(((*yyvaluep).literal)); }
2035
- #line 2036 "parser.c" /* yacc.c:1257 */
2060
+ #line 2061 "src/parser.c" /* yacc.c:1257 */
2036
2061
  break;
2037
2062
 
2038
- case 92: /* MkDict */
2039
- #line 37 "parser.y" /* yacc.c:1257 */
2063
+ case 97: /* MkDict */
2064
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2040
2065
  { block_free(((*yyvaluep).blk)); }
2041
- #line 2042 "parser.c" /* yacc.c:1257 */
2066
+ #line 2067 "src/parser.c" /* yacc.c:1257 */
2042
2067
  break;
2043
2068
 
2044
- case 93: /* MkDictPair */
2045
- #line 37 "parser.y" /* yacc.c:1257 */
2069
+ case 98: /* MkDictPair */
2070
+ #line 37 "src/parser.y" /* yacc.c:1257 */
2046
2071
  { block_free(((*yyvaluep).blk)); }
2047
- #line 2048 "parser.c" /* yacc.c:1257 */
2072
+ #line 2073 "src/parser.c" /* yacc.c:1257 */
2048
2073
  break;
2049
2074
 
2050
2075
 
@@ -2336,640 +2361,633 @@ yyreduce:
2336
2361
  switch (yyn)
2337
2362
  {
2338
2363
  case 2:
2339
- #line 276 "parser.y" /* yacc.c:1646 */
2364
+ #line 300 "src/parser.y" /* yacc.c:1646 */
2340
2365
  {
2341
2366
  *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk));
2342
2367
  }
2343
- #line 2344 "parser.c" /* yacc.c:1646 */
2368
+ #line 2369 "src/parser.c" /* yacc.c:1646 */
2344
2369
  break;
2345
2370
 
2346
2371
  case 3:
2347
- #line 279 "parser.y" /* yacc.c:1646 */
2372
+ #line 303 "src/parser.y" /* yacc.c:1646 */
2348
2373
  {
2349
2374
  *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
2350
2375
  }
2351
- #line 2352 "parser.c" /* yacc.c:1646 */
2376
+ #line 2377 "src/parser.c" /* yacc.c:1646 */
2352
2377
  break;
2353
2378
 
2354
2379
  case 4:
2355
- #line 284 "parser.y" /* yacc.c:1646 */
2380
+ #line 308 "src/parser.y" /* yacc.c:1646 */
2356
2381
  {
2357
2382
  (yyval.blk) = gen_noop();
2358
2383
  }
2359
- #line 2360 "parser.c" /* yacc.c:1646 */
2384
+ #line 2385 "src/parser.c" /* yacc.c:1646 */
2360
2385
  break;
2361
2386
 
2362
2387
  case 5:
2363
- #line 287 "parser.y" /* yacc.c:1646 */
2388
+ #line 311 "src/parser.y" /* yacc.c:1646 */
2364
2389
  {
2365
2390
  if (!block_is_const((yyvsp[-1].blk))) {
2366
- FAIL((yyloc), "Module metadata must be constant.");
2391
+ FAIL((yyloc), "Module metadata must be constant");
2367
2392
  (yyval.blk) = gen_noop();
2393
+ block_free((yyvsp[-1].blk));
2368
2394
  } else {
2369
2395
  (yyval.blk) = gen_module((yyvsp[-1].blk));
2370
2396
  }
2371
2397
  }
2372
- #line 2373 "parser.c" /* yacc.c:1646 */
2398
+ #line 2399 "src/parser.c" /* yacc.c:1646 */
2373
2399
  break;
2374
2400
 
2375
2401
  case 6:
2376
- #line 297 "parser.y" /* yacc.c:1646 */
2402
+ #line 322 "src/parser.y" /* yacc.c:1646 */
2377
2403
  {
2378
2404
  (yyval.blk) = gen_noop();
2379
2405
  }
2380
- #line 2381 "parser.c" /* yacc.c:1646 */
2406
+ #line 2407 "src/parser.c" /* yacc.c:1646 */
2381
2407
  break;
2382
2408
 
2383
2409
  case 7:
2384
- #line 300 "parser.y" /* yacc.c:1646 */
2410
+ #line 325 "src/parser.y" /* yacc.c:1646 */
2385
2411
  {
2386
2412
  (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk));
2387
2413
  }
2388
- #line 2389 "parser.c" /* yacc.c:1646 */
2414
+ #line 2415 "src/parser.c" /* yacc.c:1646 */
2389
2415
  break;
2390
2416
 
2391
2417
  case 8:
2392
- #line 305 "parser.y" /* yacc.c:1646 */
2418
+ #line 330 "src/parser.y" /* yacc.c:1646 */
2393
2419
  {
2394
2420
  (yyval.blk) = gen_noop();
2395
2421
  }
2396
- #line 2397 "parser.c" /* yacc.c:1646 */
2422
+ #line 2423 "src/parser.c" /* yacc.c:1646 */
2397
2423
  break;
2398
2424
 
2399
2425
  case 9:
2400
- #line 308 "parser.y" /* yacc.c:1646 */
2426
+ #line 333 "src/parser.y" /* yacc.c:1646 */
2401
2427
  {
2402
2428
  (yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
2403
2429
  }
2404
- #line 2405 "parser.c" /* yacc.c:1646 */
2430
+ #line 2431 "src/parser.c" /* yacc.c:1646 */
2405
2431
  break;
2406
2432
 
2407
2433
  case 10:
2408
- #line 313 "parser.y" /* yacc.c:1646 */
2434
+ #line 338 "src/parser.y" /* yacc.c:1646 */
2409
2435
  {
2410
2436
  (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
2411
2437
  }
2412
- #line 2413 "parser.c" /* yacc.c:1646 */
2438
+ #line 2439 "src/parser.c" /* yacc.c:1646 */
2413
2439
  break;
2414
2440
 
2415
2441
  case 11:
2416
- #line 317 "parser.y" /* yacc.c:1646 */
2442
+ #line 342 "src/parser.y" /* yacc.c:1646 */
2417
2443
  {
2418
2444
  (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk));
2419
2445
  }
2420
- #line 2421 "parser.c" /* yacc.c:1646 */
2446
+ #line 2447 "src/parser.c" /* yacc.c:1646 */
2421
2447
  break;
2422
2448
 
2423
2449
  case 12:
2424
- #line 321 "parser.y" /* yacc.c:1646 */
2450
+ #line 345 "src/parser.y" /* yacc.c:1646 */
2425
2451
  {
2426
2452
  (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
2427
2453
  }
2428
- #line 2429 "parser.c" /* yacc.c:1646 */
2454
+ #line 2455 "src/parser.c" /* yacc.c:1646 */
2429
2455
  break;
2430
2456
 
2431
2457
  case 13:
2432
- #line 325 "parser.y" /* yacc.c:1646 */
2458
+ #line 349 "src/parser.y" /* yacc.c:1646 */
2433
2459
  {
2434
2460
  (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
2435
2461
  }
2436
- #line 2437 "parser.c" /* yacc.c:1646 */
2462
+ #line 2463 "src/parser.c" /* yacc.c:1646 */
2437
2463
  break;
2438
2464
 
2439
2465
  case 14:
2440
- #line 329 "parser.y" /* yacc.c:1646 */
2466
+ #line 353 "src/parser.y" /* yacc.c:1646 */
2441
2467
  {
2442
2468
  (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
2443
2469
  }
2444
- #line 2445 "parser.c" /* yacc.c:1646 */
2470
+ #line 2471 "src/parser.c" /* yacc.c:1646 */
2445
2471
  break;
2446
2472
 
2447
2473
  case 15:
2448
- #line 333 "parser.y" /* yacc.c:1646 */
2474
+ #line 357 "src/parser.y" /* yacc.c:1646 */
2449
2475
  {
2450
2476
  (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
2451
2477
  }
2452
- #line 2453 "parser.c" /* yacc.c:1646 */
2478
+ #line 2479 "src/parser.c" /* yacc.c:1646 */
2453
2479
  break;
2454
2480
 
2455
2481
  case 16:
2456
- #line 336 "parser.y" /* yacc.c:1646 */
2482
+ #line 360 "src/parser.y" /* yacc.c:1646 */
2457
2483
  {
2458
2484
  FAIL((yyloc), "Possibly unterminated 'if' statement");
2459
2485
  (yyval.blk) = (yyvsp[-2].blk);
2460
2486
  }
2461
- #line 2462 "parser.c" /* yacc.c:1646 */
2487
+ #line 2488 "src/parser.c" /* yacc.c:1646 */
2462
2488
  break;
2463
2489
 
2464
2490
  case 17:
2465
- #line 341 "parser.y" /* yacc.c:1646 */
2491
+ #line 365 "src/parser.y" /* yacc.c:1646 */
2466
2492
  {
2467
2493
  //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4);
2468
2494
  (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk)));
2469
2495
  }
2470
- #line 2471 "parser.c" /* yacc.c:1646 */
2496
+ #line 2497 "src/parser.c" /* yacc.c:1646 */
2471
2497
  break;
2472
2498
 
2473
2499
  case 18:
2474
- #line 345 "parser.y" /* yacc.c:1646 */
2500
+ #line 369 "src/parser.y" /* yacc.c:1646 */
2475
2501
  {
2476
2502
  //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK));
2477
2503
  (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK));
2478
2504
  }
2479
- #line 2480 "parser.c" /* yacc.c:1646 */
2505
+ #line 2506 "src/parser.c" /* yacc.c:1646 */
2480
2506
  break;
2481
2507
 
2482
2508
  case 19:
2483
- #line 349 "parser.y" /* yacc.c:1646 */
2509
+ #line 373 "src/parser.y" /* yacc.c:1646 */
2484
2510
  {
2485
2511
  FAIL((yyloc), "Possibly unterminated 'try' statement");
2486
2512
  (yyval.blk) = (yyvsp[-2].blk);
2487
2513
  }
2488
- #line 2489 "parser.c" /* yacc.c:1646 */
2514
+ #line 2515 "src/parser.c" /* yacc.c:1646 */
2489
2515
  break;
2490
2516
 
2491
2517
  case 20:
2492
- #line 354 "parser.y" /* yacc.c:1646 */
2518
+ #line 378 "src/parser.y" /* yacc.c:1646 */
2493
2519
  {
2494
2520
  jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal)));
2495
2521
  (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk)));
2496
2522
  jv_free((yyvsp[-2].literal));
2497
2523
  jv_free(v);
2498
2524
  }
2499
- #line 2500 "parser.c" /* yacc.c:1646 */
2525
+ #line 2526 "src/parser.c" /* yacc.c:1646 */
2500
2526
  break;
2501
2527
 
2502
2528
  case 21:
2503
- #line 361 "parser.y" /* yacc.c:1646 */
2529
+ #line 385 "src/parser.y" /* yacc.c:1646 */
2504
2530
  {
2505
2531
  (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK));
2506
2532
  }
2507
- #line 2508 "parser.c" /* yacc.c:1646 */
2533
+ #line 2534 "src/parser.c" /* yacc.c:1646 */
2508
2534
  break;
2509
2535
 
2510
2536
  case 22:
2511
- #line 365 "parser.y" /* yacc.c:1646 */
2537
+ #line 389 "src/parser.y" /* yacc.c:1646 */
2512
2538
  {
2513
2539
  (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
2514
2540
  }
2515
- #line 2516 "parser.c" /* yacc.c:1646 */
2541
+ #line 2542 "src/parser.c" /* yacc.c:1646 */
2516
2542
  break;
2517
2543
 
2518
2544
  case 23:
2519
- #line 369 "parser.y" /* yacc.c:1646 */
2545
+ #line 393 "src/parser.y" /* yacc.c:1646 */
2520
2546
  {
2521
2547
  (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk));
2522
2548
  }
2523
- #line 2524 "parser.c" /* yacc.c:1646 */
2549
+ #line 2550 "src/parser.c" /* yacc.c:1646 */
2524
2550
  break;
2525
2551
 
2526
2552
  case 24:
2527
- #line 373 "parser.y" /* yacc.c:1646 */
2553
+ #line 397 "src/parser.y" /* yacc.c:1646 */
2528
2554
  {
2529
2555
  (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk));
2530
2556
  }
2531
- #line 2532 "parser.c" /* yacc.c:1646 */
2557
+ #line 2558 "src/parser.c" /* yacc.c:1646 */
2532
2558
  break;
2533
2559
 
2534
2560
  case 25:
2535
- #line 377 "parser.y" /* yacc.c:1646 */
2561
+ #line 401 "src/parser.y" /* yacc.c:1646 */
2536
2562
  {
2537
2563
  (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk));
2538
2564
  }
2539
- #line 2540 "parser.c" /* yacc.c:1646 */
2565
+ #line 2566 "src/parser.c" /* yacc.c:1646 */
2540
2566
  break;
2541
2567
 
2542
2568
  case 26:
2543
- #line 381 "parser.y" /* yacc.c:1646 */
2569
+ #line 405 "src/parser.y" /* yacc.c:1646 */
2544
2570
  {
2545
2571
  (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk));
2546
2572
  }
2547
- #line 2548 "parser.c" /* yacc.c:1646 */
2573
+ #line 2574 "src/parser.c" /* yacc.c:1646 */
2548
2574
  break;
2549
2575
 
2550
2576
  case 27:
2551
- #line 385 "parser.y" /* yacc.c:1646 */
2577
+ #line 409 "src/parser.y" /* yacc.c:1646 */
2552
2578
  {
2553
2579
  (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
2554
2580
  }
2555
- #line 2556 "parser.c" /* yacc.c:1646 */
2581
+ #line 2582 "src/parser.c" /* yacc.c:1646 */
2556
2582
  break;
2557
2583
 
2558
2584
  case 28:
2559
- #line 389 "parser.y" /* yacc.c:1646 */
2585
+ #line 413 "src/parser.y" /* yacc.c:1646 */
2560
2586
  {
2561
2587
  (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
2562
2588
  }
2563
- #line 2564 "parser.c" /* yacc.c:1646 */
2589
+ #line 2590 "src/parser.c" /* yacc.c:1646 */
2564
2590
  break;
2565
2591
 
2566
2592
  case 29:
2567
- #line 393 "parser.y" /* yacc.c:1646 */
2593
+ #line 417 "src/parser.y" /* yacc.c:1646 */
2568
2594
  {
2569
2595
  (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk));
2570
2596
  }
2571
- #line 2572 "parser.c" /* yacc.c:1646 */
2597
+ #line 2598 "src/parser.c" /* yacc.c:1646 */
2572
2598
  break;
2573
2599
 
2574
2600
  case 30:
2575
- #line 397 "parser.y" /* yacc.c:1646 */
2601
+ #line 421 "src/parser.y" /* yacc.c:1646 */
2576
2602
  {
2577
2603
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+');
2578
2604
  }
2579
- #line 2580 "parser.c" /* yacc.c:1646 */
2605
+ #line 2606 "src/parser.c" /* yacc.c:1646 */
2580
2606
  break;
2581
2607
 
2582
2608
  case 31:
2583
- #line 401 "parser.y" /* yacc.c:1646 */
2609
+ #line 425 "src/parser.y" /* yacc.c:1646 */
2584
2610
  {
2585
2611
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+');
2586
2612
  }
2587
- #line 2588 "parser.c" /* yacc.c:1646 */
2613
+ #line 2614 "src/parser.c" /* yacc.c:1646 */
2588
2614
  break;
2589
2615
 
2590
2616
  case 32:
2591
- #line 405 "parser.y" /* yacc.c:1646 */
2617
+ #line 429 "src/parser.y" /* yacc.c:1646 */
2592
2618
  {
2593
2619
  (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
2594
2620
  }
2595
- #line 2596 "parser.c" /* yacc.c:1646 */
2621
+ #line 2622 "src/parser.c" /* yacc.c:1646 */
2596
2622
  break;
2597
2623
 
2598
2624
  case 33:
2599
- #line 409 "parser.y" /* yacc.c:1646 */
2625
+ #line 433 "src/parser.y" /* yacc.c:1646 */
2600
2626
  {
2601
2627
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-');
2602
2628
  }
2603
- #line 2604 "parser.c" /* yacc.c:1646 */
2629
+ #line 2630 "src/parser.c" /* yacc.c:1646 */
2604
2630
  break;
2605
2631
 
2606
2632
  case 34:
2607
- #line 413 "parser.y" /* yacc.c:1646 */
2633
+ #line 437 "src/parser.y" /* yacc.c:1646 */
2608
2634
  {
2609
2635
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-');
2610
2636
  }
2611
- #line 2612 "parser.c" /* yacc.c:1646 */
2637
+ #line 2638 "src/parser.c" /* yacc.c:1646 */
2612
2638
  break;
2613
2639
 
2614
2640
  case 35:
2615
- #line 417 "parser.y" /* yacc.c:1646 */
2641
+ #line 441 "src/parser.y" /* yacc.c:1646 */
2616
2642
  {
2617
2643
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*');
2618
2644
  }
2619
- #line 2620 "parser.c" /* yacc.c:1646 */
2645
+ #line 2646 "src/parser.c" /* yacc.c:1646 */
2620
2646
  break;
2621
2647
 
2622
2648
  case 36:
2623
- #line 421 "parser.y" /* yacc.c:1646 */
2649
+ #line 445 "src/parser.y" /* yacc.c:1646 */
2624
2650
  {
2625
2651
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*');
2626
2652
  }
2627
- #line 2628 "parser.c" /* yacc.c:1646 */
2653
+ #line 2654 "src/parser.c" /* yacc.c:1646 */
2628
2654
  break;
2629
2655
 
2630
2656
  case 37:
2631
- #line 425 "parser.y" /* yacc.c:1646 */
2657
+ #line 449 "src/parser.y" /* yacc.c:1646 */
2632
2658
  {
2633
2659
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/');
2634
2660
  if (block_is_const_inf((yyval.blk)))
2635
2661
  FAIL((yyloc), "Division by zero?");
2636
2662
  }
2637
- #line 2638 "parser.c" /* yacc.c:1646 */
2663
+ #line 2664 "src/parser.c" /* yacc.c:1646 */
2638
2664
  break;
2639
2665
 
2640
2666
  case 38:
2641
- #line 431 "parser.y" /* yacc.c:1646 */
2667
+ #line 455 "src/parser.y" /* yacc.c:1646 */
2642
2668
  {
2643
2669
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%');
2644
2670
  if (block_is_const_inf((yyval.blk)))
2645
2671
  FAIL((yyloc), "Remainder by zero?");
2646
2672
  }
2647
- #line 2648 "parser.c" /* yacc.c:1646 */
2673
+ #line 2674 "src/parser.c" /* yacc.c:1646 */
2648
2674
  break;
2649
2675
 
2650
2676
  case 39:
2651
- #line 437 "parser.y" /* yacc.c:1646 */
2677
+ #line 461 "src/parser.y" /* yacc.c:1646 */
2652
2678
  {
2653
2679
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/');
2654
2680
  }
2655
- #line 2656 "parser.c" /* yacc.c:1646 */
2681
+ #line 2682 "src/parser.c" /* yacc.c:1646 */
2656
2682
  break;
2657
2683
 
2658
2684
  case 40:
2659
- #line 441 "parser.y" /* yacc.c:1646 */
2685
+ #line 465 "src/parser.y" /* yacc.c:1646 */
2660
2686
  {
2661
2687
  (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%');
2662
2688
  }
2663
- #line 2664 "parser.c" /* yacc.c:1646 */
2689
+ #line 2690 "src/parser.c" /* yacc.c:1646 */
2664
2690
  break;
2665
2691
 
2666
2692
  case 41:
2667
- #line 445 "parser.y" /* yacc.c:1646 */
2693
+ #line 469 "src/parser.y" /* yacc.c:1646 */
2668
2694
  {
2669
2695
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ);
2670
2696
  }
2671
- #line 2672 "parser.c" /* yacc.c:1646 */
2697
+ #line 2698 "src/parser.c" /* yacc.c:1646 */
2672
2698
  break;
2673
2699
 
2674
2700
  case 42:
2675
- #line 449 "parser.y" /* yacc.c:1646 */
2701
+ #line 473 "src/parser.y" /* yacc.c:1646 */
2676
2702
  {
2677
2703
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ);
2678
2704
  }
2679
- #line 2680 "parser.c" /* yacc.c:1646 */
2705
+ #line 2706 "src/parser.c" /* yacc.c:1646 */
2680
2706
  break;
2681
2707
 
2682
2708
  case 43:
2683
- #line 453 "parser.y" /* yacc.c:1646 */
2709
+ #line 477 "src/parser.y" /* yacc.c:1646 */
2684
2710
  {
2685
2711
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<');
2686
2712
  }
2687
- #line 2688 "parser.c" /* yacc.c:1646 */
2713
+ #line 2714 "src/parser.c" /* yacc.c:1646 */
2688
2714
  break;
2689
2715
 
2690
2716
  case 44:
2691
- #line 457 "parser.y" /* yacc.c:1646 */
2717
+ #line 481 "src/parser.y" /* yacc.c:1646 */
2692
2718
  {
2693
2719
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>');
2694
2720
  }
2695
- #line 2696 "parser.c" /* yacc.c:1646 */
2721
+ #line 2722 "src/parser.c" /* yacc.c:1646 */
2696
2722
  break;
2697
2723
 
2698
2724
  case 45:
2699
- #line 461 "parser.y" /* yacc.c:1646 */
2725
+ #line 485 "src/parser.y" /* yacc.c:1646 */
2700
2726
  {
2701
2727
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ);
2702
2728
  }
2703
- #line 2704 "parser.c" /* yacc.c:1646 */
2729
+ #line 2730 "src/parser.c" /* yacc.c:1646 */
2704
2730
  break;
2705
2731
 
2706
2732
  case 46:
2707
- #line 465 "parser.y" /* yacc.c:1646 */
2733
+ #line 489 "src/parser.y" /* yacc.c:1646 */
2708
2734
  {
2709
2735
  (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ);
2710
2736
  }
2711
- #line 2712 "parser.c" /* yacc.c:1646 */
2737
+ #line 2738 "src/parser.c" /* yacc.c:1646 */
2712
2738
  break;
2713
2739
 
2714
2740
  case 47:
2715
- #line 469 "parser.y" /* yacc.c:1646 */
2741
+ #line 493 "src/parser.y" /* yacc.c:1646 */
2716
2742
  {
2717
2743
  (yyval.blk) = (yyvsp[0].blk);
2718
2744
  }
2719
- #line 2720 "parser.c" /* yacc.c:1646 */
2745
+ #line 2746 "src/parser.c" /* yacc.c:1646 */
2720
2746
  break;
2721
2747
 
2722
2748
  case 48:
2723
- #line 474 "parser.y" /* yacc.c:1646 */
2749
+ #line 498 "src/parser.y" /* yacc.c:1646 */
2724
2750
  {
2725
- jv v = block_const((yyvsp[-4].blk));
2726
- // XXX Make gen_import take only blocks and the int is_data so we
2727
- // don't have to free so much stuff here
2728
- (yyval.blk) = gen_import(jv_string_value(v), gen_noop(), jv_string_value((yyvsp[-1].literal)), 1);
2729
- block_free((yyvsp[-4].blk));
2730
- jv_free((yyvsp[-1].literal));
2731
- jv_free(v);
2751
+ (yyval.blk) = (yyvsp[-1].blk);
2732
2752
  }
2733
- #line 2734 "parser.c" /* yacc.c:1646 */
2753
+ #line 2754 "src/parser.c" /* yacc.c:1646 */
2734
2754
  break;
2735
2755
 
2736
2756
  case 49:
2737
- #line 483 "parser.y" /* yacc.c:1646 */
2757
+ #line 501 "src/parser.y" /* yacc.c:1646 */
2738
2758
  {
2739
- jv v = block_const((yyvsp[-3].blk));
2740
- (yyval.blk) = gen_import(jv_string_value(v), gen_noop(), jv_string_value((yyvsp[-1].literal)), 0);
2741
- block_free((yyvsp[-3].blk));
2742
- jv_free((yyvsp[-1].literal));
2743
- jv_free(v);
2759
+ if (!block_is_const((yyvsp[-1].blk))) {
2760
+ FAIL((yyloc), "Module metadata must be constant");
2761
+ (yyval.blk) = gen_noop();
2762
+ block_free((yyvsp[-2].blk));
2763
+ block_free((yyvsp[-1].blk));
2764
+ } else if (block_const_kind((yyvsp[-1].blk)) != JV_KIND_OBJECT) {
2765
+ FAIL((yyloc), "Module metadata must be an object");
2766
+ (yyval.blk) = gen_noop();
2767
+ block_free((yyvsp[-2].blk));
2768
+ block_free((yyvsp[-1].blk));
2769
+ } else {
2770
+ (yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk));
2771
+ }
2744
2772
  }
2745
- #line 2746 "parser.c" /* yacc.c:1646 */
2773
+ #line 2774 "src/parser.c" /* yacc.c:1646 */
2746
2774
  break;
2747
2775
 
2748
2776
  case 50:
2749
- #line 490 "parser.y" /* yacc.c:1646 */
2777
+ #line 518 "src/parser.y" /* yacc.c:1646 */
2750
2778
  {
2751
- jv v = block_const((yyvsp[-1].blk));
2752
- (yyval.blk) = gen_import(jv_string_value(v), gen_noop(), NULL, 0);
2753
- block_free((yyvsp[-1].blk));
2779
+ jv v = block_const((yyvsp[-3].blk));
2780
+ // XXX Make gen_import take only blocks and the int is_data so we
2781
+ // don't have to free so much stuff here
2782
+ (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 1);
2783
+ block_free((yyvsp[-3].blk));
2784
+ jv_free((yyvsp[0].literal));
2754
2785
  jv_free(v);
2755
2786
  }
2756
- #line 2757 "parser.c" /* yacc.c:1646 */
2787
+ #line 2788 "src/parser.c" /* yacc.c:1646 */
2757
2788
  break;
2758
2789
 
2759
2790
  case 51:
2760
- #line 496 "parser.y" /* yacc.c:1646 */
2791
+ #line 527 "src/parser.y" /* yacc.c:1646 */
2761
2792
  {
2762
- if (!block_is_const((yyvsp[-1].blk))) {
2763
- FAIL((yyloc), "Module metadata must be constant.");
2764
- (yyval.blk) = gen_noop();
2765
- } else {
2766
- jv v = block_const((yyvsp[-4].blk));
2767
- (yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), jv_string_value((yyvsp[-2].literal)), 0);
2768
- jv_free(v);
2769
- }
2770
- block_free((yyvsp[-4].blk));
2771
- jv_free((yyvsp[-2].literal));
2793
+ jv v = block_const((yyvsp[-2].blk));
2794
+ (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0);
2795
+ block_free((yyvsp[-2].blk));
2796
+ jv_free((yyvsp[0].literal));
2797
+ jv_free(v);
2772
2798
  }
2773
- #line 2774 "parser.c" /* yacc.c:1646 */
2799
+ #line 2800 "src/parser.c" /* yacc.c:1646 */
2774
2800
  break;
2775
2801
 
2776
2802
  case 52:
2777
- #line 508 "parser.y" /* yacc.c:1646 */
2803
+ #line 534 "src/parser.y" /* yacc.c:1646 */
2778
2804
  {
2779
- if (!block_is_const((yyvsp[-1].blk))) {
2780
- FAIL((yyloc), "Module metadata must be constant.");
2781
- (yyval.blk) = gen_noop();
2782
- } else {
2783
- jv v = block_const((yyvsp[-2].blk));
2784
- (yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), NULL, 0);
2785
- jv_free(v);
2786
- }
2787
- block_free((yyvsp[-2].blk));
2805
+ jv v = block_const((yyvsp[0].blk));
2806
+ (yyval.blk) = gen_import(jv_string_value(v), NULL, 0);
2807
+ block_free((yyvsp[0].blk));
2808
+ jv_free(v);
2788
2809
  }
2789
- #line 2790 "parser.c" /* yacc.c:1646 */
2810
+ #line 2811 "src/parser.c" /* yacc.c:1646 */
2790
2811
  break;
2791
2812
 
2792
2813
  case 53:
2793
- #line 519 "parser.y" /* yacc.c:1646 */
2814
+ #line 542 "src/parser.y" /* yacc.c:1646 */
2794
2815
  {
2795
- if (!block_is_const((yyvsp[-1].blk))) {
2796
- FAIL((yyloc), "Module metadata must be constant.");
2797
- (yyval.blk) = gen_noop();
2816
+ if (!block_is_const((yyvsp[0].blk))) {
2817
+ FAIL((yyloc), "Import path must be constant");
2818
+ (yyval.blk) = gen_const(jv_string(""));
2819
+ block_free((yyvsp[0].blk));
2798
2820
  } else {
2799
- jv v = block_const((yyvsp[-5].blk));
2800
- (yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), jv_string_value((yyvsp[-2].literal)), 1);
2801
- jv_free(v);
2821
+ (yyval.blk) = (yyvsp[0].blk);
2802
2822
  }
2803
- block_free((yyvsp[-5].blk));
2804
- jv_free((yyvsp[-2].literal));
2805
2823
  }
2806
- #line 2807 "parser.c" /* yacc.c:1646 */
2824
+ #line 2825 "src/parser.c" /* yacc.c:1646 */
2807
2825
  break;
2808
2826
 
2809
2827
  case 54:
2810
- #line 533 "parser.y" /* yacc.c:1646 */
2828
+ #line 553 "src/parser.y" /* yacc.c:1646 */
2811
2829
  {
2812
2830
  (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk));
2813
2831
  jv_free((yyvsp[-3].literal));
2814
2832
  }
2815
- #line 2816 "parser.c" /* yacc.c:1646 */
2833
+ #line 2834 "src/parser.c" /* yacc.c:1646 */
2816
2834
  break;
2817
2835
 
2818
2836
  case 55:
2819
- #line 538 "parser.y" /* yacc.c:1646 */
2837
+ #line 558 "src/parser.y" /* yacc.c:1646 */
2820
2838
  {
2821
2839
  (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk));
2822
2840
  jv_free((yyvsp[-6].literal));
2823
2841
  }
2824
- #line 2825 "parser.c" /* yacc.c:1646 */
2842
+ #line 2843 "src/parser.c" /* yacc.c:1646 */
2825
2843
  break;
2826
2844
 
2827
2845
  case 56:
2828
- #line 544 "parser.y" /* yacc.c:1646 */
2846
+ #line 564 "src/parser.y" /* yacc.c:1646 */
2829
2847
  {
2830
2848
  (yyval.blk) = (yyvsp[0].blk);
2831
2849
  }
2832
- #line 2833 "parser.c" /* yacc.c:1646 */
2850
+ #line 2851 "src/parser.c" /* yacc.c:1646 */
2833
2851
  break;
2834
2852
 
2835
2853
  case 57:
2836
- #line 547 "parser.y" /* yacc.c:1646 */
2854
+ #line 567 "src/parser.y" /* yacc.c:1646 */
2837
2855
  {
2838
2856
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
2839
2857
  }
2840
- #line 2841 "parser.c" /* yacc.c:1646 */
2858
+ #line 2859 "src/parser.c" /* yacc.c:1646 */
2841
2859
  break;
2842
2860
 
2843
2861
  case 58:
2844
- #line 552 "parser.y" /* yacc.c:1646 */
2862
+ #line 572 "src/parser.y" /* yacc.c:1646 */
2845
2863
  {
2846
2864
  (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal)));
2847
2865
  jv_free((yyvsp[0].literal));
2848
2866
  }
2849
- #line 2850 "parser.c" /* yacc.c:1646 */
2867
+ #line 2868 "src/parser.c" /* yacc.c:1646 */
2850
2868
  break;
2851
2869
 
2852
2870
  case 59:
2853
- #line 557 "parser.y" /* yacc.c:1646 */
2871
+ #line 577 "src/parser.y" /* yacc.c:1646 */
2854
2872
  {
2855
2873
  (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal)));
2856
2874
  jv_free((yyvsp[0].literal));
2857
2875
  }
2858
- #line 2859 "parser.c" /* yacc.c:1646 */
2876
+ #line 2877 "src/parser.c" /* yacc.c:1646 */
2859
2877
  break;
2860
2878
 
2861
2879
  case 60:
2862
- #line 564 "parser.y" /* yacc.c:1646 */
2880
+ #line 584 "src/parser.y" /* yacc.c:1646 */
2863
2881
  { (yyval.literal) = jv_string("text"); }
2864
- #line 2865 "parser.c" /* yacc.c:1646 */
2882
+ #line 2883 "src/parser.c" /* yacc.c:1646 */
2865
2883
  break;
2866
2884
 
2867
2885
  case 61:
2868
- #line 564 "parser.y" /* yacc.c:1646 */
2886
+ #line 584 "src/parser.y" /* yacc.c:1646 */
2869
2887
  {
2870
2888
  (yyval.blk) = (yyvsp[-1].blk);
2871
2889
  jv_free((yyvsp[-2].literal));
2872
2890
  }
2873
- #line 2874 "parser.c" /* yacc.c:1646 */
2891
+ #line 2892 "src/parser.c" /* yacc.c:1646 */
2874
2892
  break;
2875
2893
 
2876
2894
  case 62:
2877
- #line 568 "parser.y" /* yacc.c:1646 */
2895
+ #line 588 "src/parser.y" /* yacc.c:1646 */
2878
2896
  { (yyval.literal) = (yyvsp[-1].literal); }
2879
- #line 2880 "parser.c" /* yacc.c:1646 */
2897
+ #line 2898 "src/parser.c" /* yacc.c:1646 */
2880
2898
  break;
2881
2899
 
2882
2900
  case 63:
2883
- #line 568 "parser.y" /* yacc.c:1646 */
2901
+ #line 588 "src/parser.y" /* yacc.c:1646 */
2884
2902
  {
2885
2903
  (yyval.blk) = (yyvsp[-1].blk);
2886
2904
  jv_free((yyvsp[-2].literal));
2887
2905
  }
2888
- #line 2889 "parser.c" /* yacc.c:1646 */
2906
+ #line 2907 "src/parser.c" /* yacc.c:1646 */
2889
2907
  break;
2890
2908
 
2891
2909
  case 64:
2892
- #line 575 "parser.y" /* yacc.c:1646 */
2910
+ #line 595 "src/parser.y" /* yacc.c:1646 */
2893
2911
  {
2894
2912
  (yyval.blk) = gen_const(jv_string(""));
2895
2913
  }
2896
- #line 2897 "parser.c" /* yacc.c:1646 */
2914
+ #line 2915 "src/parser.c" /* yacc.c:1646 */
2897
2915
  break;
2898
2916
 
2899
2917
  case 65:
2900
- #line 578 "parser.y" /* yacc.c:1646 */
2918
+ #line 598 "src/parser.y" /* yacc.c:1646 */
2901
2919
  {
2902
2920
  (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+');
2903
2921
  }
2904
- #line 2905 "parser.c" /* yacc.c:1646 */
2922
+ #line 2923 "src/parser.c" /* yacc.c:1646 */
2905
2923
  break;
2906
2924
 
2907
2925
  case 66:
2908
- #line 581 "parser.y" /* yacc.c:1646 */
2926
+ #line 601 "src/parser.y" /* yacc.c:1646 */
2909
2927
  {
2910
2928
  (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+');
2911
2929
  }
2912
- #line 2913 "parser.c" /* yacc.c:1646 */
2930
+ #line 2931 "src/parser.c" /* yacc.c:1646 */
2913
2931
  break;
2914
2932
 
2915
2933
  case 67:
2916
- #line 587 "parser.y" /* yacc.c:1646 */
2934
+ #line 607 "src/parser.y" /* yacc.c:1646 */
2917
2935
  {
2918
2936
  (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
2919
2937
  }
2920
- #line 2921 "parser.c" /* yacc.c:1646 */
2938
+ #line 2939 "src/parser.c" /* yacc.c:1646 */
2921
2939
  break;
2922
2940
 
2923
2941
  case 68:
2924
- #line 590 "parser.y" /* yacc.c:1646 */
2942
+ #line 610 "src/parser.y" /* yacc.c:1646 */
2925
2943
  {
2926
2944
  (yyval.blk) = (yyvsp[-1].blk);
2927
2945
  }
2928
- #line 2929 "parser.c" /* yacc.c:1646 */
2946
+ #line 2947 "src/parser.c" /* yacc.c:1646 */
2929
2947
  break;
2930
2948
 
2931
2949
  case 69:
2932
- #line 595 "parser.y" /* yacc.c:1646 */
2950
+ #line 615 "src/parser.y" /* yacc.c:1646 */
2933
2951
  {
2934
2952
  (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
2935
2953
  }
2936
- #line 2937 "parser.c" /* yacc.c:1646 */
2954
+ #line 2955 "src/parser.c" /* yacc.c:1646 */
2937
2955
  break;
2938
2956
 
2939
2957
  case 70:
2940
- #line 598 "parser.y" /* yacc.c:1646 */
2958
+ #line 618 "src/parser.y" /* yacc.c:1646 */
2941
2959
  {
2942
2960
  (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
2943
2961
  }
2944
- #line 2945 "parser.c" /* yacc.c:1646 */
2962
+ #line 2963 "src/parser.c" /* yacc.c:1646 */
2945
2963
  break;
2946
2964
 
2947
2965
  case 71:
2948
- #line 601 "parser.y" /* yacc.c:1646 */
2966
+ #line 621 "src/parser.y" /* yacc.c:1646 */
2949
2967
  {
2950
2968
  (yyval.blk) = (yyvsp[0].blk);
2951
2969
  }
2952
- #line 2953 "parser.c" /* yacc.c:1646 */
2970
+ #line 2971 "src/parser.c" /* yacc.c:1646 */
2953
2971
  break;
2954
2972
 
2955
2973
  case 72:
2956
- #line 607 "parser.y" /* yacc.c:1646 */
2974
+ #line 627 "src/parser.y" /* yacc.c:1646 */
2957
2975
  {
2958
2976
  (yyval.blk) = gen_noop();
2959
2977
  }
2960
- #line 2961 "parser.c" /* yacc.c:1646 */
2978
+ #line 2979 "src/parser.c" /* yacc.c:1646 */
2961
2979
  break;
2962
2980
 
2963
2981
  case 73:
2964
- #line 610 "parser.y" /* yacc.c:1646 */
2982
+ #line 630 "src/parser.y" /* yacc.c:1646 */
2965
2983
  {
2966
2984
  (yyval.blk) = gen_call("recurse", gen_noop());
2967
2985
  }
2968
- #line 2969 "parser.c" /* yacc.c:1646 */
2986
+ #line 2987 "src/parser.c" /* yacc.c:1646 */
2969
2987
  break;
2970
2988
 
2971
2989
  case 74:
2972
- #line 613 "parser.y" /* yacc.c:1646 */
2990
+ #line 633 "src/parser.y" /* yacc.c:1646 */
2973
2991
  {
2974
2992
  jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol
2975
2993
  (yyval.blk) = gen_location((yyloc), locations,
@@ -2978,231 +2996,231 @@ yyreduce:
2978
2996
  jv_free(v);
2979
2997
  jv_free((yyvsp[0].literal));
2980
2998
  }
2981
- #line 2982 "parser.c" /* yacc.c:1646 */
2999
+ #line 3000 "src/parser.c" /* yacc.c:1646 */
2982
3000
  break;
2983
3001
 
2984
3002
  case 75:
2985
- #line 621 "parser.y" /* yacc.c:1646 */
3003
+ #line 641 "src/parser.y" /* yacc.c:1646 */
2986
3004
  {
2987
3005
  FAIL((yyloc), "break requires a label to break to");
2988
3006
  (yyval.blk) = gen_noop();
2989
3007
  }
2990
- #line 2991 "parser.c" /* yacc.c:1646 */
3008
+ #line 3009 "src/parser.c" /* yacc.c:1646 */
2991
3009
  break;
2992
3010
 
2993
3011
  case 76:
2994
- #line 625 "parser.y" /* yacc.c:1646 */
3012
+ #line 645 "src/parser.y" /* yacc.c:1646 */
2995
3013
  {
2996
3014
  (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal)));
2997
3015
  }
2998
- #line 2999 "parser.c" /* yacc.c:1646 */
3016
+ #line 3017 "src/parser.c" /* yacc.c:1646 */
2999
3017
  break;
3000
3018
 
3001
3019
  case 77:
3002
- #line 628 "parser.y" /* yacc.c:1646 */
3020
+ #line 648 "src/parser.y" /* yacc.c:1646 */
3003
3021
  {
3004
3022
  (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal)));
3005
3023
  }
3006
- #line 3007 "parser.c" /* yacc.c:1646 */
3024
+ #line 3025 "src/parser.c" /* yacc.c:1646 */
3007
3025
  break;
3008
3026
 
3009
3027
  case 78:
3010
- #line 631 "parser.y" /* yacc.c:1646 */
3028
+ #line 651 "src/parser.y" /* yacc.c:1646 */
3011
3029
  {
3012
3030
  (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk));
3013
3031
  }
3014
- #line 3015 "parser.c" /* yacc.c:1646 */
3032
+ #line 3033 "src/parser.c" /* yacc.c:1646 */
3015
3033
  break;
3016
3034
 
3017
3035
  case 79:
3018
- #line 634 "parser.y" /* yacc.c:1646 */
3036
+ #line 654 "src/parser.y" /* yacc.c:1646 */
3019
3037
  {
3020
3038
  (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk));
3021
3039
  }
3022
- #line 3023 "parser.c" /* yacc.c:1646 */
3040
+ #line 3041 "src/parser.c" /* yacc.c:1646 */
3023
3041
  break;
3024
3042
 
3025
3043
  case 80:
3026
- #line 637 "parser.y" /* yacc.c:1646 */
3044
+ #line 657 "src/parser.y" /* yacc.c:1646 */
3027
3045
  {
3028
3046
  (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal)));
3029
3047
  }
3030
- #line 3031 "parser.c" /* yacc.c:1646 */
3048
+ #line 3049 "src/parser.c" /* yacc.c:1646 */
3031
3049
  break;
3032
3050
 
3033
3051
  case 81:
3034
- #line 640 "parser.y" /* yacc.c:1646 */
3052
+ #line 660 "src/parser.y" /* yacc.c:1646 */
3035
3053
  {
3036
3054
  (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal)));
3037
3055
  }
3038
- #line 3039 "parser.c" /* yacc.c:1646 */
3056
+ #line 3057 "src/parser.c" /* yacc.c:1646 */
3039
3057
  break;
3040
3058
 
3041
3059
  case 82:
3042
- #line 643 "parser.y" /* yacc.c:1646 */
3060
+ #line 663 "src/parser.y" /* yacc.c:1646 */
3043
3061
  {
3044
3062
  (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk));
3045
3063
  }
3046
- #line 3047 "parser.c" /* yacc.c:1646 */
3064
+ #line 3065 "src/parser.c" /* yacc.c:1646 */
3047
3065
  break;
3048
3066
 
3049
3067
  case 83:
3050
- #line 646 "parser.y" /* yacc.c:1646 */
3068
+ #line 666 "src/parser.y" /* yacc.c:1646 */
3051
3069
  {
3052
3070
  (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk));
3053
3071
  }
3054
- #line 3055 "parser.c" /* yacc.c:1646 */
3072
+ #line 3073 "src/parser.c" /* yacc.c:1646 */
3055
3073
  break;
3056
3074
 
3057
3075
  case 84:
3058
- #line 649 "parser.y" /* yacc.c:1646 */
3076
+ #line 669 "src/parser.y" /* yacc.c:1646 */
3059
3077
  {
3060
3078
  FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
3061
3079
  (yyval.blk) = gen_noop();
3062
3080
  }
3063
- #line 3064 "parser.c" /* yacc.c:1646 */
3081
+ #line 3082 "src/parser.c" /* yacc.c:1646 */
3064
3082
  break;
3065
3083
 
3066
3084
  case 85:
3067
- #line 653 "parser.y" /* yacc.c:1646 */
3085
+ #line 673 "src/parser.y" /* yacc.c:1646 */
3068
3086
  {
3069
3087
  jv_free((yyvsp[-1].literal));
3070
3088
  FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
3071
3089
  (yyval.blk) = gen_noop();
3072
3090
  }
3073
- #line 3074 "parser.c" /* yacc.c:1646 */
3091
+ #line 3092 "src/parser.c" /* yacc.c:1646 */
3074
3092
  break;
3075
3093
 
3076
3094
  case 86:
3077
- #line 659 "parser.y" /* yacc.c:1646 */
3095
+ #line 679 "src/parser.y" /* yacc.c:1646 */
3078
3096
  {
3079
3097
  (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk));
3080
3098
  }
3081
- #line 3082 "parser.c" /* yacc.c:1646 */
3099
+ #line 3100 "src/parser.c" /* yacc.c:1646 */
3082
3100
  break;
3083
3101
 
3084
3102
  case 87:
3085
- #line 662 "parser.y" /* yacc.c:1646 */
3103
+ #line 682 "src/parser.y" /* yacc.c:1646 */
3086
3104
  {
3087
3105
  (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk));
3088
3106
  }
3089
- #line 3090 "parser.c" /* yacc.c:1646 */
3107
+ #line 3108 "src/parser.c" /* yacc.c:1646 */
3090
3108
  break;
3091
3109
 
3092
3110
  case 88:
3093
- #line 665 "parser.y" /* yacc.c:1646 */
3111
+ #line 685 "src/parser.y" /* yacc.c:1646 */
3094
3112
  {
3095
3113
  (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT));
3096
3114
  }
3097
- #line 3098 "parser.c" /* yacc.c:1646 */
3115
+ #line 3116 "src/parser.c" /* yacc.c:1646 */
3098
3116
  break;
3099
3117
 
3100
3118
  case 89:
3101
- #line 668 "parser.y" /* yacc.c:1646 */
3119
+ #line 688 "src/parser.y" /* yacc.c:1646 */
3102
3120
  {
3103
3121
  (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH));
3104
3122
  }
3105
- #line 3106 "parser.c" /* yacc.c:1646 */
3123
+ #line 3124 "src/parser.c" /* yacc.c:1646 */
3106
3124
  break;
3107
3125
 
3108
3126
  case 90:
3109
- #line 671 "parser.y" /* yacc.c:1646 */
3127
+ #line 691 "src/parser.y" /* yacc.c:1646 */
3110
3128
  {
3111
3129
  (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT);
3112
3130
  }
3113
- #line 3114 "parser.c" /* yacc.c:1646 */
3131
+ #line 3132 "src/parser.c" /* yacc.c:1646 */
3114
3132
  break;
3115
3133
 
3116
3134
  case 91:
3117
- #line 674 "parser.y" /* yacc.c:1646 */
3135
+ #line 694 "src/parser.y" /* yacc.c:1646 */
3118
3136
  {
3119
3137
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT);
3120
3138
  }
3121
- #line 3122 "parser.c" /* yacc.c:1646 */
3139
+ #line 3140 "src/parser.c" /* yacc.c:1646 */
3122
3140
  break;
3123
3141
 
3124
3142
  case 92:
3125
- #line 677 "parser.y" /* yacc.c:1646 */
3143
+ #line 697 "src/parser.y" /* yacc.c:1646 */
3126
3144
  {
3127
3145
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT);
3128
3146
  }
3129
- #line 3130 "parser.c" /* yacc.c:1646 */
3147
+ #line 3148 "src/parser.c" /* yacc.c:1646 */
3130
3148
  break;
3131
3149
 
3132
3150
  case 93:
3133
- #line 680 "parser.y" /* yacc.c:1646 */
3151
+ #line 700 "src/parser.y" /* yacc.c:1646 */
3134
3152
  {
3135
3153
  (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX);
3136
3154
  }
3137
- #line 3138 "parser.c" /* yacc.c:1646 */
3155
+ #line 3156 "src/parser.c" /* yacc.c:1646 */
3138
3156
  break;
3139
3157
 
3140
3158
  case 94:
3141
- #line 683 "parser.y" /* yacc.c:1646 */
3159
+ #line 703 "src/parser.y" /* yacc.c:1646 */
3142
3160
  {
3143
3161
  (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX);
3144
3162
  }
3145
- #line 3146 "parser.c" /* yacc.c:1646 */
3163
+ #line 3164 "src/parser.c" /* yacc.c:1646 */
3146
3164
  break;
3147
3165
 
3148
3166
  case 95:
3149
- #line 686 "parser.y" /* yacc.c:1646 */
3167
+ #line 706 "src/parser.y" /* yacc.c:1646 */
3150
3168
  {
3151
3169
  (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX);
3152
3170
  }
3153
- #line 3154 "parser.c" /* yacc.c:1646 */
3171
+ #line 3172 "src/parser.c" /* yacc.c:1646 */
3154
3172
  break;
3155
3173
 
3156
3174
  case 96:
3157
- #line 689 "parser.y" /* yacc.c:1646 */
3175
+ #line 709 "src/parser.y" /* yacc.c:1646 */
3158
3176
  {
3159
3177
  (yyval.blk) = gen_const((yyvsp[0].literal));
3160
3178
  }
3161
- #line 3162 "parser.c" /* yacc.c:1646 */
3179
+ #line 3180 "src/parser.c" /* yacc.c:1646 */
3162
3180
  break;
3163
3181
 
3164
3182
  case 97:
3165
- #line 692 "parser.y" /* yacc.c:1646 */
3183
+ #line 712 "src/parser.y" /* yacc.c:1646 */
3166
3184
  {
3167
3185
  (yyval.blk) = (yyvsp[0].blk);
3168
3186
  }
3169
- #line 3170 "parser.c" /* yacc.c:1646 */
3187
+ #line 3188 "src/parser.c" /* yacc.c:1646 */
3170
3188
  break;
3171
3189
 
3172
3190
  case 98:
3173
- #line 695 "parser.y" /* yacc.c:1646 */
3191
+ #line 715 "src/parser.y" /* yacc.c:1646 */
3174
3192
  {
3175
3193
  (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal));
3176
3194
  }
3177
- #line 3178 "parser.c" /* yacc.c:1646 */
3195
+ #line 3196 "src/parser.c" /* yacc.c:1646 */
3178
3196
  break;
3179
3197
 
3180
3198
  case 99:
3181
- #line 698 "parser.y" /* yacc.c:1646 */
3199
+ #line 718 "src/parser.y" /* yacc.c:1646 */
3182
3200
  {
3183
3201
  (yyval.blk) = (yyvsp[-1].blk);
3184
3202
  }
3185
- #line 3186 "parser.c" /* yacc.c:1646 */
3203
+ #line 3204 "src/parser.c" /* yacc.c:1646 */
3186
3204
  break;
3187
3205
 
3188
3206
  case 100:
3189
- #line 701 "parser.y" /* yacc.c:1646 */
3207
+ #line 721 "src/parser.y" /* yacc.c:1646 */
3190
3208
  {
3191
3209
  (yyval.blk) = gen_collect((yyvsp[-1].blk));
3192
3210
  }
3193
- #line 3194 "parser.c" /* yacc.c:1646 */
3211
+ #line 3212 "src/parser.c" /* yacc.c:1646 */
3194
3212
  break;
3195
3213
 
3196
3214
  case 101:
3197
- #line 704 "parser.y" /* yacc.c:1646 */
3215
+ #line 724 "src/parser.y" /* yacc.c:1646 */
3198
3216
  {
3199
3217
  (yyval.blk) = gen_const(jv_array());
3200
3218
  }
3201
- #line 3202 "parser.c" /* yacc.c:1646 */
3219
+ #line 3220 "src/parser.c" /* yacc.c:1646 */
3202
3220
  break;
3203
3221
 
3204
3222
  case 102:
3205
- #line 707 "parser.y" /* yacc.c:1646 */
3223
+ #line 727 "src/parser.y" /* yacc.c:1646 */
3206
3224
  {
3207
3225
  block o = gen_const_object((yyvsp[-1].blk));
3208
3226
  if (o.first != NULL)
@@ -3210,29 +3228,29 @@ yyreduce:
3210
3228
  else
3211
3229
  (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP));
3212
3230
  }
3213
- #line 3214 "parser.c" /* yacc.c:1646 */
3231
+ #line 3232 "src/parser.c" /* yacc.c:1646 */
3214
3232
  break;
3215
3233
 
3216
3234
  case 103:
3217
- #line 714 "parser.y" /* yacc.c:1646 */
3235
+ #line 734 "src/parser.y" /* yacc.c:1646 */
3218
3236
  {
3219
3237
  (yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
3220
3238
  jv_string("line"), jv_number(locfile_get_line(locations, (yyloc).start) + 1)));
3221
3239
  }
3222
- #line 3223 "parser.c" /* yacc.c:1646 */
3240
+ #line 3241 "src/parser.c" /* yacc.c:1646 */
3223
3241
  break;
3224
3242
 
3225
3243
  case 104:
3226
- #line 718 "parser.y" /* yacc.c:1646 */
3244
+ #line 738 "src/parser.y" /* yacc.c:1646 */
3227
3245
  {
3228
3246
  (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))));
3229
3247
  jv_free((yyvsp[0].literal));
3230
3248
  }
3231
- #line 3232 "parser.c" /* yacc.c:1646 */
3249
+ #line 3250 "src/parser.c" /* yacc.c:1646 */
3232
3250
  break;
3233
3251
 
3234
3252
  case 105:
3235
- #line 722 "parser.y" /* yacc.c:1646 */
3253
+ #line 742 "src/parser.y" /* yacc.c:1646 */
3236
3254
  {
3237
3255
  const char *s = jv_string_value((yyvsp[0].literal));
3238
3256
  if (strcmp(s, "false") == 0)
@@ -3245,409 +3263,471 @@ yyreduce:
3245
3263
  (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop()));
3246
3264
  jv_free((yyvsp[0].literal));
3247
3265
  }
3248
- #line 3249 "parser.c" /* yacc.c:1646 */
3266
+ #line 3267 "src/parser.c" /* yacc.c:1646 */
3249
3267
  break;
3250
3268
 
3251
3269
  case 106:
3252
- #line 734 "parser.y" /* yacc.c:1646 */
3270
+ #line 754 "src/parser.y" /* yacc.c:1646 */
3253
3271
  {
3254
3272
  (yyval.blk) = gen_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk));
3255
3273
  (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk));
3256
3274
  jv_free((yyvsp[-3].literal));
3257
3275
  }
3258
- #line 3259 "parser.c" /* yacc.c:1646 */
3276
+ #line 3277 "src/parser.c" /* yacc.c:1646 */
3259
3277
  break;
3260
3278
 
3261
3279
  case 107:
3262
- #line 739 "parser.y" /* yacc.c:1646 */
3280
+ #line 759 "src/parser.y" /* yacc.c:1646 */
3263
3281
  { (yyval.blk) = gen_noop(); }
3264
- #line 3265 "parser.c" /* yacc.c:1646 */
3282
+ #line 3283 "src/parser.c" /* yacc.c:1646 */
3265
3283
  break;
3266
3284
 
3267
3285
  case 108:
3268
- #line 740 "parser.y" /* yacc.c:1646 */
3286
+ #line 760 "src/parser.y" /* yacc.c:1646 */
3269
3287
  { (yyval.blk) = gen_noop(); }
3270
- #line 3271 "parser.c" /* yacc.c:1646 */
3288
+ #line 3289 "src/parser.c" /* yacc.c:1646 */
3271
3289
  break;
3272
3290
 
3273
3291
  case 109:
3274
- #line 741 "parser.y" /* yacc.c:1646 */
3292
+ #line 761 "src/parser.y" /* yacc.c:1646 */
3275
3293
  { (yyval.blk) = (yyvsp[-3].blk); }
3276
- #line 3277 "parser.c" /* yacc.c:1646 */
3294
+ #line 3295 "src/parser.c" /* yacc.c:1646 */
3277
3295
  break;
3278
3296
 
3279
3297
  case 110:
3280
- #line 742 "parser.y" /* yacc.c:1646 */
3298
+ #line 762 "src/parser.y" /* yacc.c:1646 */
3281
3299
  { (yyval.blk) = gen_noop(); }
3282
- #line 3283 "parser.c" /* yacc.c:1646 */
3300
+ #line 3301 "src/parser.c" /* yacc.c:1646 */
3283
3301
  break;
3284
3302
 
3285
3303
  case 111:
3286
- #line 745 "parser.y" /* yacc.c:1646 */
3304
+ #line 765 "src/parser.y" /* yacc.c:1646 */
3287
3305
  {
3288
3306
  (yyval.blk) = (yyvsp[0].blk);
3289
3307
  }
3290
- #line 3291 "parser.c" /* yacc.c:1646 */
3308
+ #line 3309 "src/parser.c" /* yacc.c:1646 */
3291
3309
  break;
3292
3310
 
3293
3311
  case 112:
3294
- #line 748 "parser.y" /* yacc.c:1646 */
3312
+ #line 768 "src/parser.y" /* yacc.c:1646 */
3295
3313
  {
3296
3314
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3297
3315
  }
3298
- #line 3299 "parser.c" /* yacc.c:1646 */
3316
+ #line 3317 "src/parser.c" /* yacc.c:1646 */
3299
3317
  break;
3300
3318
 
3301
3319
  case 113:
3302
- #line 753 "parser.y" /* yacc.c:1646 */
3320
+ #line 773 "src/parser.y" /* yacc.c:1646 */
3303
3321
  {
3304
3322
  (yyval.blk) = gen_lambda((yyvsp[0].blk));
3305
3323
  }
3306
- #line 3307 "parser.c" /* yacc.c:1646 */
3324
+ #line 3325 "src/parser.c" /* yacc.c:1646 */
3307
3325
  break;
3308
3326
 
3309
3327
  case 114:
3310
- #line 758 "parser.y" /* yacc.c:1646 */
3328
+ #line 778 "src/parser.y" /* yacc.c:1646 */
3329
+ {
3330
+ (yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk)));
3331
+ }
3332
+ #line 3333 "src/parser.c" /* yacc.c:1646 */
3333
+ break;
3334
+
3335
+ case 115:
3336
+ #line 781 "src/parser.y" /* yacc.c:1646 */
3337
+ {
3338
+ (yyval.blk) = gen_destructure_alt((yyvsp[0].blk));
3339
+ }
3340
+ #line 3341 "src/parser.c" /* yacc.c:1646 */
3341
+ break;
3342
+
3343
+ case 116:
3344
+ #line 786 "src/parser.y" /* yacc.c:1646 */
3345
+ {
3346
+ (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3347
+ }
3348
+ #line 3349 "src/parser.c" /* yacc.c:1646 */
3349
+ break;
3350
+
3351
+ case 117:
3352
+ #line 789 "src/parser.y" /* yacc.c:1646 */
3353
+ {
3354
+ (yyval.blk) = (yyvsp[0].blk);
3355
+ }
3356
+ #line 3357 "src/parser.c" /* yacc.c:1646 */
3357
+ break;
3358
+
3359
+ case 118:
3360
+ #line 794 "src/parser.y" /* yacc.c:1646 */
3311
3361
  {
3312
3362
  (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)));
3313
3363
  jv_free((yyvsp[0].literal));
3314
3364
  }
3315
- #line 3316 "parser.c" /* yacc.c:1646 */
3365
+ #line 3366 "src/parser.c" /* yacc.c:1646 */
3316
3366
  break;
3317
3367
 
3318
- case 115:
3319
- #line 762 "parser.y" /* yacc.c:1646 */
3368
+ case 119:
3369
+ #line 798 "src/parser.y" /* yacc.c:1646 */
3320
3370
  {
3321
3371
  (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
3322
3372
  }
3323
- #line 3324 "parser.c" /* yacc.c:1646 */
3373
+ #line 3374 "src/parser.c" /* yacc.c:1646 */
3324
3374
  break;
3325
3375
 
3326
- case 116:
3327
- #line 765 "parser.y" /* yacc.c:1646 */
3376
+ case 120:
3377
+ #line 801 "src/parser.y" /* yacc.c:1646 */
3328
3378
  {
3329
3379
  (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
3330
3380
  }
3331
- #line 3332 "parser.c" /* yacc.c:1646 */
3381
+ #line 3382 "src/parser.c" /* yacc.c:1646 */
3332
3382
  break;
3333
3383
 
3334
- case 117:
3335
- #line 770 "parser.y" /* yacc.c:1646 */
3384
+ case 121:
3385
+ #line 806 "src/parser.y" /* yacc.c:1646 */
3336
3386
  {
3337
3387
  (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk));
3338
3388
  }
3339
- #line 3340 "parser.c" /* yacc.c:1646 */
3389
+ #line 3390 "src/parser.c" /* yacc.c:1646 */
3340
3390
  break;
3341
3391
 
3342
- case 118:
3343
- #line 773 "parser.y" /* yacc.c:1646 */
3392
+ case 122:
3393
+ #line 809 "src/parser.y" /* yacc.c:1646 */
3344
3394
  {
3345
3395
  (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
3346
3396
  }
3347
- #line 3348 "parser.c" /* yacc.c:1646 */
3397
+ #line 3398 "src/parser.c" /* yacc.c:1646 */
3348
3398
  break;
3349
3399
 
3350
- case 119:
3351
- #line 778 "parser.y" /* yacc.c:1646 */
3400
+ case 123:
3401
+ #line 814 "src/parser.y" /* yacc.c:1646 */
3352
3402
  {
3353
3403
  (yyval.blk) = (yyvsp[0].blk);
3354
3404
  }
3355
- #line 3356 "parser.c" /* yacc.c:1646 */
3405
+ #line 3406 "src/parser.c" /* yacc.c:1646 */
3356
3406
  break;
3357
3407
 
3358
- case 120:
3359
- #line 781 "parser.y" /* yacc.c:1646 */
3408
+ case 124:
3409
+ #line 817 "src/parser.y" /* yacc.c:1646 */
3360
3410
  {
3361
3411
  (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
3362
3412
  }
3363
- #line 3364 "parser.c" /* yacc.c:1646 */
3413
+ #line 3414 "src/parser.c" /* yacc.c:1646 */
3364
3414
  break;
3365
3415
 
3366
- case 121:
3367
- #line 786 "parser.y" /* yacc.c:1646 */
3416
+ case 125:
3417
+ #line 822 "src/parser.y" /* yacc.c:1646 */
3368
3418
  {
3369
3419
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))));
3370
3420
  }
3371
- #line 3372 "parser.c" /* yacc.c:1646 */
3421
+ #line 3422 "src/parser.c" /* yacc.c:1646 */
3372
3422
  break;
3373
3423
 
3374
- case 122:
3375
- #line 789 "parser.y" /* yacc.c:1646 */
3424
+ case 126:
3425
+ #line 825 "src/parser.y" /* yacc.c:1646 */
3426
+ {
3427
+ (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)));
3428
+ }
3429
+ #line 3430 "src/parser.c" /* yacc.c:1646 */
3430
+ break;
3431
+
3432
+ case 127:
3433
+ #line 828 "src/parser.y" /* yacc.c:1646 */
3376
3434
  {
3377
3435
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3378
3436
  }
3379
- #line 3380 "parser.c" /* yacc.c:1646 */
3437
+ #line 3438 "src/parser.c" /* yacc.c:1646 */
3380
3438
  break;
3381
3439
 
3382
- case 123:
3383
- #line 792 "parser.y" /* yacc.c:1646 */
3440
+ case 128:
3441
+ #line 831 "src/parser.y" /* yacc.c:1646 */
3384
3442
  {
3385
3443
  (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3386
3444
  }
3387
- #line 3388 "parser.c" /* yacc.c:1646 */
3445
+ #line 3446 "src/parser.c" /* yacc.c:1646 */
3388
3446
  break;
3389
3447
 
3390
- case 124:
3391
- #line 795 "parser.y" /* yacc.c:1646 */
3448
+ case 129:
3449
+ #line 834 "src/parser.y" /* yacc.c:1646 */
3392
3450
  {
3393
3451
  (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
3394
3452
  }
3395
- #line 3396 "parser.c" /* yacc.c:1646 */
3453
+ #line 3454 "src/parser.c" /* yacc.c:1646 */
3396
3454
  break;
3397
3455
 
3398
- case 125:
3399
- #line 798 "parser.y" /* yacc.c:1646 */
3456
+ case 130:
3457
+ #line 837 "src/parser.y" /* yacc.c:1646 */
3400
3458
  {
3459
+ jv msg = check_object_key((yyvsp[-3].blk));
3460
+ if (jv_is_valid(msg)) {
3461
+ FAIL((yyloc), jv_string_value(msg));
3462
+ }
3463
+ jv_free(msg);
3401
3464
  (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk));
3402
3465
  }
3403
- #line 3404 "parser.c" /* yacc.c:1646 */
3466
+ #line 3467 "src/parser.c" /* yacc.c:1646 */
3404
3467
  break;
3405
3468
 
3406
- case 126:
3407
- #line 803 "parser.y" /* yacc.c:1646 */
3469
+ case 131:
3470
+ #line 845 "src/parser.y" /* yacc.c:1646 */
3471
+ {
3472
+ FAIL((yyloc), "May need parentheses around object key expression");
3473
+ (yyval.blk) = (yyvsp[0].blk);
3474
+ }
3475
+ #line 3476 "src/parser.c" /* yacc.c:1646 */
3476
+ break;
3477
+
3478
+ case 132:
3479
+ #line 851 "src/parser.y" /* yacc.c:1646 */
3408
3480
  {
3409
3481
  (yyval.literal) = jv_string("as");
3410
3482
  }
3411
- #line 3412 "parser.c" /* yacc.c:1646 */
3483
+ #line 3484 "src/parser.c" /* yacc.c:1646 */
3412
3484
  break;
3413
3485
 
3414
- case 127:
3415
- #line 806 "parser.y" /* yacc.c:1646 */
3486
+ case 133:
3487
+ #line 854 "src/parser.y" /* yacc.c:1646 */
3416
3488
  {
3417
3489
  (yyval.literal) = jv_string("def");
3418
3490
  }
3419
- #line 3420 "parser.c" /* yacc.c:1646 */
3491
+ #line 3492 "src/parser.c" /* yacc.c:1646 */
3420
3492
  break;
3421
3493
 
3422
- case 128:
3423
- #line 809 "parser.y" /* yacc.c:1646 */
3494
+ case 134:
3495
+ #line 857 "src/parser.y" /* yacc.c:1646 */
3424
3496
  {
3425
3497
  (yyval.literal) = jv_string("module");
3426
3498
  }
3427
- #line 3428 "parser.c" /* yacc.c:1646 */
3499
+ #line 3500 "src/parser.c" /* yacc.c:1646 */
3428
3500
  break;
3429
3501
 
3430
- case 129:
3431
- #line 812 "parser.y" /* yacc.c:1646 */
3502
+ case 135:
3503
+ #line 860 "src/parser.y" /* yacc.c:1646 */
3432
3504
  {
3433
3505
  (yyval.literal) = jv_string("import");
3434
3506
  }
3435
- #line 3436 "parser.c" /* yacc.c:1646 */
3507
+ #line 3508 "src/parser.c" /* yacc.c:1646 */
3436
3508
  break;
3437
3509
 
3438
- case 130:
3439
- #line 815 "parser.y" /* yacc.c:1646 */
3510
+ case 136:
3511
+ #line 863 "src/parser.y" /* yacc.c:1646 */
3440
3512
  {
3441
3513
  (yyval.literal) = jv_string("include");
3442
3514
  }
3443
- #line 3444 "parser.c" /* yacc.c:1646 */
3515
+ #line 3516 "src/parser.c" /* yacc.c:1646 */
3444
3516
  break;
3445
3517
 
3446
- case 131:
3447
- #line 818 "parser.y" /* yacc.c:1646 */
3518
+ case 137:
3519
+ #line 866 "src/parser.y" /* yacc.c:1646 */
3448
3520
  {
3449
3521
  (yyval.literal) = jv_string("if");
3450
3522
  }
3451
- #line 3452 "parser.c" /* yacc.c:1646 */
3523
+ #line 3524 "src/parser.c" /* yacc.c:1646 */
3452
3524
  break;
3453
3525
 
3454
- case 132:
3455
- #line 821 "parser.y" /* yacc.c:1646 */
3526
+ case 138:
3527
+ #line 869 "src/parser.y" /* yacc.c:1646 */
3456
3528
  {
3457
3529
  (yyval.literal) = jv_string("then");
3458
3530
  }
3459
- #line 3460 "parser.c" /* yacc.c:1646 */
3531
+ #line 3532 "src/parser.c" /* yacc.c:1646 */
3460
3532
  break;
3461
3533
 
3462
- case 133:
3463
- #line 824 "parser.y" /* yacc.c:1646 */
3534
+ case 139:
3535
+ #line 872 "src/parser.y" /* yacc.c:1646 */
3464
3536
  {
3465
3537
  (yyval.literal) = jv_string("else");
3466
3538
  }
3467
- #line 3468 "parser.c" /* yacc.c:1646 */
3539
+ #line 3540 "src/parser.c" /* yacc.c:1646 */
3468
3540
  break;
3469
3541
 
3470
- case 134:
3471
- #line 827 "parser.y" /* yacc.c:1646 */
3542
+ case 140:
3543
+ #line 875 "src/parser.y" /* yacc.c:1646 */
3472
3544
  {
3473
3545
  (yyval.literal) = jv_string("elif");
3474
3546
  }
3475
- #line 3476 "parser.c" /* yacc.c:1646 */
3547
+ #line 3548 "src/parser.c" /* yacc.c:1646 */
3476
3548
  break;
3477
3549
 
3478
- case 135:
3479
- #line 830 "parser.y" /* yacc.c:1646 */
3550
+ case 141:
3551
+ #line 878 "src/parser.y" /* yacc.c:1646 */
3480
3552
  {
3481
3553
  (yyval.literal) = jv_string("reduce");
3482
3554
  }
3483
- #line 3484 "parser.c" /* yacc.c:1646 */
3555
+ #line 3556 "src/parser.c" /* yacc.c:1646 */
3484
3556
  break;
3485
3557
 
3486
- case 136:
3487
- #line 833 "parser.y" /* yacc.c:1646 */
3558
+ case 142:
3559
+ #line 881 "src/parser.y" /* yacc.c:1646 */
3488
3560
  {
3489
3561
  (yyval.literal) = jv_string("foreach");
3490
3562
  }
3491
- #line 3492 "parser.c" /* yacc.c:1646 */
3563
+ #line 3564 "src/parser.c" /* yacc.c:1646 */
3492
3564
  break;
3493
3565
 
3494
- case 137:
3495
- #line 836 "parser.y" /* yacc.c:1646 */
3566
+ case 143:
3567
+ #line 884 "src/parser.y" /* yacc.c:1646 */
3496
3568
  {
3497
3569
  (yyval.literal) = jv_string("end");
3498
3570
  }
3499
- #line 3500 "parser.c" /* yacc.c:1646 */
3571
+ #line 3572 "src/parser.c" /* yacc.c:1646 */
3500
3572
  break;
3501
3573
 
3502
- case 138:
3503
- #line 839 "parser.y" /* yacc.c:1646 */
3574
+ case 144:
3575
+ #line 887 "src/parser.y" /* yacc.c:1646 */
3504
3576
  {
3505
3577
  (yyval.literal) = jv_string("and");
3506
3578
  }
3507
- #line 3508 "parser.c" /* yacc.c:1646 */
3579
+ #line 3580 "src/parser.c" /* yacc.c:1646 */
3508
3580
  break;
3509
3581
 
3510
- case 139:
3511
- #line 842 "parser.y" /* yacc.c:1646 */
3582
+ case 145:
3583
+ #line 890 "src/parser.y" /* yacc.c:1646 */
3512
3584
  {
3513
3585
  (yyval.literal) = jv_string("or");
3514
3586
  }
3515
- #line 3516 "parser.c" /* yacc.c:1646 */
3587
+ #line 3588 "src/parser.c" /* yacc.c:1646 */
3516
3588
  break;
3517
3589
 
3518
- case 140:
3519
- #line 845 "parser.y" /* yacc.c:1646 */
3590
+ case 146:
3591
+ #line 893 "src/parser.y" /* yacc.c:1646 */
3520
3592
  {
3521
3593
  (yyval.literal) = jv_string("try");
3522
3594
  }
3523
- #line 3524 "parser.c" /* yacc.c:1646 */
3595
+ #line 3596 "src/parser.c" /* yacc.c:1646 */
3524
3596
  break;
3525
3597
 
3526
- case 141:
3527
- #line 848 "parser.y" /* yacc.c:1646 */
3598
+ case 147:
3599
+ #line 896 "src/parser.y" /* yacc.c:1646 */
3528
3600
  {
3529
3601
  (yyval.literal) = jv_string("catch");
3530
3602
  }
3531
- #line 3532 "parser.c" /* yacc.c:1646 */
3603
+ #line 3604 "src/parser.c" /* yacc.c:1646 */
3532
3604
  break;
3533
3605
 
3534
- case 142:
3535
- #line 851 "parser.y" /* yacc.c:1646 */
3606
+ case 148:
3607
+ #line 899 "src/parser.y" /* yacc.c:1646 */
3536
3608
  {
3537
3609
  (yyval.literal) = jv_string("label");
3538
3610
  }
3539
- #line 3540 "parser.c" /* yacc.c:1646 */
3611
+ #line 3612 "src/parser.c" /* yacc.c:1646 */
3540
3612
  break;
3541
3613
 
3542
- case 143:
3543
- #line 854 "parser.y" /* yacc.c:1646 */
3614
+ case 149:
3615
+ #line 902 "src/parser.y" /* yacc.c:1646 */
3544
3616
  {
3545
3617
  (yyval.literal) = jv_string("break");
3546
3618
  }
3547
- #line 3548 "parser.c" /* yacc.c:1646 */
3619
+ #line 3620 "src/parser.c" /* yacc.c:1646 */
3548
3620
  break;
3549
3621
 
3550
- case 144:
3551
- #line 857 "parser.y" /* yacc.c:1646 */
3622
+ case 150:
3623
+ #line 905 "src/parser.y" /* yacc.c:1646 */
3552
3624
  {
3553
3625
  (yyval.literal) = jv_string("__loc__");
3554
3626
  }
3555
- #line 3556 "parser.c" /* yacc.c:1646 */
3627
+ #line 3628 "src/parser.c" /* yacc.c:1646 */
3556
3628
  break;
3557
3629
 
3558
- case 145:
3559
- #line 862 "parser.y" /* yacc.c:1646 */
3630
+ case 151:
3631
+ #line 910 "src/parser.y" /* yacc.c:1646 */
3560
3632
  {
3561
3633
  (yyval.blk)=gen_noop();
3562
3634
  }
3563
- #line 3564 "parser.c" /* yacc.c:1646 */
3635
+ #line 3636 "src/parser.c" /* yacc.c:1646 */
3564
3636
  break;
3565
3637
 
3566
- case 146:
3567
- #line 865 "parser.y" /* yacc.c:1646 */
3638
+ case 152:
3639
+ #line 913 "src/parser.y" /* yacc.c:1646 */
3568
3640
  { (yyval.blk) = (yyvsp[0].blk); }
3569
- #line 3570 "parser.c" /* yacc.c:1646 */
3641
+ #line 3642 "src/parser.c" /* yacc.c:1646 */
3570
3642
  break;
3571
3643
 
3572
- case 147:
3573
- #line 866 "parser.y" /* yacc.c:1646 */
3644
+ case 153:
3645
+ #line 914 "src/parser.y" /* yacc.c:1646 */
3574
3646
  { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); }
3575
- #line 3576 "parser.c" /* yacc.c:1646 */
3647
+ #line 3648 "src/parser.c" /* yacc.c:1646 */
3576
3648
  break;
3577
3649
 
3578
- case 148:
3579
- #line 867 "parser.y" /* yacc.c:1646 */
3650
+ case 154:
3651
+ #line 915 "src/parser.y" /* yacc.c:1646 */
3580
3652
  { (yyval.blk) = (yyvsp[0].blk); }
3581
- #line 3582 "parser.c" /* yacc.c:1646 */
3653
+ #line 3654 "src/parser.c" /* yacc.c:1646 */
3582
3654
  break;
3583
3655
 
3584
- case 149:
3585
- #line 870 "parser.y" /* yacc.c:1646 */
3656
+ case 155:
3657
+ #line 918 "src/parser.y" /* yacc.c:1646 */
3586
3658
  {
3587
3659
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3588
3660
  }
3589
- #line 3590 "parser.c" /* yacc.c:1646 */
3661
+ #line 3662 "src/parser.c" /* yacc.c:1646 */
3590
3662
  break;
3591
3663
 
3592
- case 150:
3593
- #line 873 "parser.y" /* yacc.c:1646 */
3664
+ case 156:
3665
+ #line 921 "src/parser.y" /* yacc.c:1646 */
3594
3666
  {
3595
3667
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
3596
3668
  }
3597
- #line 3598 "parser.c" /* yacc.c:1646 */
3669
+ #line 3670 "src/parser.c" /* yacc.c:1646 */
3598
3670
  break;
3599
3671
 
3600
- case 151:
3601
- #line 876 "parser.y" /* yacc.c:1646 */
3672
+ case 157:
3673
+ #line 924 "src/parser.y" /* yacc.c:1646 */
3602
3674
  {
3603
3675
  (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk));
3604
3676
  }
3605
- #line 3606 "parser.c" /* yacc.c:1646 */
3677
+ #line 3678 "src/parser.c" /* yacc.c:1646 */
3606
3678
  break;
3607
3679
 
3608
- case 152:
3609
- #line 879 "parser.y" /* yacc.c:1646 */
3680
+ case 158:
3681
+ #line 927 "src/parser.y" /* yacc.c:1646 */
3610
3682
  {
3611
3683
  (yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_simple(DUP2),
3612
3684
  gen_op_simple(DUP2), gen_op_simple(INDEX)));
3613
3685
  }
3614
- #line 3615 "parser.c" /* yacc.c:1646 */
3686
+ #line 3687 "src/parser.c" /* yacc.c:1646 */
3615
3687
  break;
3616
3688
 
3617
- case 153:
3618
- #line 883 "parser.y" /* yacc.c:1646 */
3689
+ case 159:
3690
+ #line 931 "src/parser.y" /* yacc.c:1646 */
3619
3691
  {
3620
3692
  (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)),
3621
3693
  gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))));
3622
3694
  }
3623
- #line 3624 "parser.c" /* yacc.c:1646 */
3695
+ #line 3696 "src/parser.c" /* yacc.c:1646 */
3624
3696
  break;
3625
3697
 
3626
- case 154:
3627
- #line 887 "parser.y" /* yacc.c:1646 */
3698
+ case 160:
3699
+ #line 935 "src/parser.y" /* yacc.c:1646 */
3628
3700
  {
3629
3701
  (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
3630
3702
  gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
3631
3703
  }
3632
- #line 3633 "parser.c" /* yacc.c:1646 */
3704
+ #line 3705 "src/parser.c" /* yacc.c:1646 */
3633
3705
  break;
3634
3706
 
3635
- case 155:
3636
- #line 891 "parser.y" /* yacc.c:1646 */
3707
+ case 161:
3708
+ #line 939 "src/parser.y" /* yacc.c:1646 */
3637
3709
  {
3710
+ jv msg = check_object_key((yyvsp[-3].blk));
3711
+ if (jv_is_valid(msg)) {
3712
+ FAIL((yyloc), jv_string_value(msg));
3713
+ }
3714
+ jv_free(msg);
3638
3715
  (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk));
3639
3716
  }
3640
- #line 3641 "parser.c" /* yacc.c:1646 */
3717
+ #line 3718 "src/parser.c" /* yacc.c:1646 */
3641
3718
  break;
3642
3719
 
3643
- case 156:
3644
- #line 894 "parser.y" /* yacc.c:1646 */
3645
- { (yyval.blk) = (yyvsp[0].blk); }
3646
- #line 3647 "parser.c" /* yacc.c:1646 */
3720
+ case 162:
3721
+ #line 947 "src/parser.y" /* yacc.c:1646 */
3722
+ {
3723
+ FAIL((yyloc), "May need parentheses around object key expression");
3724
+ (yyval.blk) = (yyvsp[0].blk);
3725
+ }
3726
+ #line 3727 "src/parser.c" /* yacc.c:1646 */
3647
3727
  break;
3648
3728
 
3649
3729
 
3650
- #line 3651 "parser.c" /* yacc.c:1646 */
3730
+ #line 3731 "src/parser.c" /* yacc.c:1646 */
3651
3731
  default: break;
3652
3732
  }
3653
3733
  /* User semantic actions sometimes alter yychar, and that requires
@@ -3882,7 +3962,7 @@ yyreturn:
3882
3962
  #endif
3883
3963
  return yyresult;
3884
3964
  }
3885
- #line 895 "parser.y" /* yacc.c:1906 */
3965
+ #line 951 "src/parser.y" /* yacc.c:1906 */
3886
3966
 
3887
3967
 
3888
3968
  int jq_parse(struct locfile* locations, block* answer) {