puppet 4.3.2 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (487) hide show
  1. checksums.yaml +4 -4
  2. data/COMMITTERS.md +2 -2
  3. data/CONTRIBUTING.md +6 -6
  4. data/LICENSE +1 -1
  5. data/README.md +8 -9
  6. data/conf/auth.conf +2 -2
  7. data/ext/README.environment +1 -1
  8. data/ext/debian/README.source +1 -1
  9. data/ext/debian/control +1 -1
  10. data/ext/debian/copyright +4 -4
  11. data/ext/debian/puppetmaster.README.debian +11 -9
  12. data/ext/emacs/puppet-mode.el +1 -1
  13. data/ext/envpuppet +2 -2
  14. data/ext/ips/puppetagent.xml +1 -1
  15. data/ext/ips/puppetmaster.xml +1 -1
  16. data/ext/project_data.yaml +8 -0
  17. data/ext/puppet-test +3 -3
  18. data/ext/rack/example-passenger-vhost.conf +1 -1
  19. data/ext/redhat/puppet.spec.erb +2 -2
  20. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  21. data/ext/solaris/pkginfo +1 -1
  22. data/ext/solaris/smf/puppet.xml +1 -1
  23. data/ext/suse/puppet.spec +2 -2
  24. data/ext/upload_facts.rb +1 -1
  25. data/ext/windows/puppet_interactive.bat +6 -0
  26. data/ext/windows/puppet_shell.bat +9 -0
  27. data/ext/windows/run_puppet_interactive.bat +9 -0
  28. data/ext/yaml_nodes.rb +1 -1
  29. data/install.rb +30 -20
  30. data/lib/puppet/agent.rb +1 -1
  31. data/lib/puppet/application/agent.rb +4 -2
  32. data/lib/puppet/application/apply.rb +7 -4
  33. data/lib/puppet/application/cert.rb +1 -1
  34. data/lib/puppet/application/device.rb +1 -1
  35. data/lib/puppet/application/filebucket.rb +1 -1
  36. data/lib/puppet/application/inspect.rb +1 -1
  37. data/lib/puppet/application/lookup.rb +4 -4
  38. data/lib/puppet/application/master.rb +2 -2
  39. data/lib/puppet/application/resource.rb +1 -1
  40. data/lib/puppet/configurer.rb +100 -22
  41. data/lib/puppet/data_providers/hiera_config.rb +28 -3
  42. data/lib/puppet/data_providers/hiera_interpolate.rb +30 -15
  43. data/lib/puppet/data_providers/hiera_support.rb +1 -1
  44. data/lib/puppet/data_providers/json_data_provider_factory.rb +2 -2
  45. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -2
  46. data/lib/puppet/defaults.rb +65 -19
  47. data/lib/puppet/environments.rb +3 -1
  48. data/lib/puppet/face/config.rb +1 -1
  49. data/lib/puppet/face/epp.rb +1 -1
  50. data/lib/puppet/face/help/man.erb +1 -1
  51. data/lib/puppet/face/module/install.rb +6 -6
  52. data/lib/puppet/face/parser.rb +12 -9
  53. data/lib/puppet/face/status.rb +2 -1
  54. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  55. data/lib/puppet/feature/telnet.rb +9 -0
  56. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  57. data/lib/puppet/file_serving/metadata.rb +18 -2
  58. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  59. data/lib/puppet/file_system.rb +2 -2
  60. data/lib/puppet/file_system/file_impl.rb +2 -2
  61. data/lib/puppet/file_system/memory_impl.rb +1 -1
  62. data/lib/puppet/file_system/uniquefile.rb +1 -1
  63. data/lib/puppet/forge.rb +1 -1
  64. data/lib/puppet/forge/repository.rb +1 -31
  65. data/lib/puppet/functions.rb +45 -6
  66. data/lib/puppet/functions/assert_type.rb +9 -9
  67. data/lib/puppet/functions/each.rb +5 -13
  68. data/lib/puppet/functions/filter.rb +5 -14
  69. data/lib/puppet/functions/map.rb +6 -14
  70. data/lib/puppet/functions/reduce.rb +5 -13
  71. data/lib/puppet/functions/reverse_each.rb +82 -0
  72. data/lib/puppet/functions/scanf.rb +15 -18
  73. data/lib/puppet/functions/slice.rb +22 -36
  74. data/lib/puppet/functions/split.rb +2 -2
  75. data/lib/puppet/functions/step.rb +88 -0
  76. data/lib/puppet/functions/type.rb +70 -0
  77. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  78. data/lib/puppet/indirector/catalog/compiler.rb +188 -5
  79. data/lib/puppet/indirector/file_content/http.rb +15 -0
  80. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  81. data/lib/puppet/indirector/generic_http.rb +16 -0
  82. data/lib/puppet/indirector/node/exec.rb +1 -1
  83. data/lib/puppet/indirector/node/ldap.rb +1 -1
  84. data/lib/puppet/indirector/rest.rb +2 -1
  85. data/lib/puppet/info_service/class_information_service.rb +13 -12
  86. data/lib/puppet/loaders.rb +1 -0
  87. data/lib/puppet/module.rb +3 -0
  88. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +9 -2
  89. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -1
  90. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +2 -2
  91. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  92. data/lib/puppet/network/http/pool.rb +9 -0
  93. data/lib/puppet/node.rb +1 -1
  94. data/lib/puppet/node/environment.rb +11 -2
  95. data/lib/puppet/parser/ast/pops_bridge.rb +19 -22
  96. data/lib/puppet/parser/compiler.rb +3 -3
  97. data/lib/puppet/parser/environment_compiler.rb +0 -1
  98. data/lib/puppet/parser/functions.rb +28 -16
  99. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -1
  100. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  101. data/lib/puppet/parser/functions/map.rb +1 -1
  102. data/lib/puppet/parser/functions/scanf.rb +15 -26
  103. data/lib/puppet/parser/functions/slice.rb +17 -24
  104. data/lib/puppet/parser/functions/split.rb +1 -1
  105. data/lib/puppet/parser/resource.rb +19 -17
  106. data/lib/puppet/parser/scope.rb +176 -5
  107. data/lib/puppet/plugins/data_providers/data_provider.rb +54 -13
  108. data/lib/puppet/pops.rb +0 -8
  109. data/lib/puppet/pops/adaptable.rb +4 -1
  110. data/lib/puppet/pops/adapters.rb +38 -13
  111. data/lib/puppet/pops/binder/binder.rb +21 -17
  112. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  113. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  114. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  115. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  116. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  117. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  118. data/lib/puppet/pops/binder/injector.rb +53 -48
  119. data/lib/puppet/pops/binder/key_factory.rb +10 -6
  120. data/lib/puppet/pops/binder/producers.rb +67 -62
  121. data/lib/puppet/pops/evaluator/access_operator.rb +95 -93
  122. data/lib/puppet/pops/evaluator/closure.rb +84 -68
  123. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -14
  124. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -1
  125. data/lib/puppet/pops/evaluator/compare_operator.rb +13 -9
  126. data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
  127. data/lib/puppet/pops/evaluator/evaluator_impl.rb +78 -76
  128. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +85 -0
  129. data/lib/puppet/pops/evaluator/relationship_operator.rb +13 -11
  130. data/lib/puppet/pops/evaluator/runtime3_converter.rb +5 -0
  131. data/lib/puppet/pops/evaluator/runtime3_support.rb +41 -45
  132. data/lib/puppet/pops/issue_reporter.rb +6 -4
  133. data/lib/puppet/pops/issues.rb +34 -11
  134. data/lib/puppet/pops/loader/base_loader.rb +1 -1
  135. data/lib/puppet/pops/loader/loader.rb +1 -1
  136. data/lib/puppet/pops/loader/loader_paths.rb +15 -0
  137. data/lib/puppet/pops/loader/module_loaders.rb +17 -13
  138. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +16 -12
  139. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -3
  140. data/lib/puppet/pops/loader/type_definition_instantiator.rb +55 -0
  141. data/lib/puppet/pops/loaders.rb +51 -9
  142. data/lib/puppet/pops/lookup.rb +14 -12
  143. data/lib/puppet/pops/merge_strategy.rb +16 -19
  144. data/lib/puppet/pops/model/factory.rb +26 -2
  145. data/lib/puppet/pops/model/model.rb +8 -8
  146. data/lib/puppet/pops/model/model_label_provider.rb +13 -7
  147. data/lib/puppet/pops/model/model_meta.rb +17 -0
  148. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -0
  149. data/lib/puppet/pops/parser/egrammar.ra +38 -14
  150. data/lib/puppet/pops/parser/eparser.rb +1353 -1276
  151. data/lib/puppet/pops/parser/epp_support.rb +11 -7
  152. data/lib/puppet/pops/parser/evaluating_parser.rb +14 -10
  153. data/lib/puppet/pops/parser/heredoc_support.rb +15 -11
  154. data/lib/puppet/pops/parser/lexer2.rb +26 -19
  155. data/lib/puppet/pops/parser/lexer_support.rb +85 -7
  156. data/lib/puppet/pops/parser/locator.rb +21 -0
  157. data/lib/puppet/pops/parser/parser_support.rb +19 -16
  158. data/lib/puppet/pops/parser/slurp_support.rb +11 -7
  159. data/lib/puppet/pops/types/class_loader.rb +23 -19
  160. data/lib/puppet/pops/types/enumeration.rb +9 -26
  161. data/lib/puppet/pops/types/iterable.rb +308 -0
  162. data/lib/puppet/pops/types/recursion_guard.rb +82 -0
  163. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  164. data/lib/puppet/pops/types/type_asserter.rb +10 -9
  165. data/lib/puppet/pops/types/type_calculator.rb +138 -381
  166. data/lib/puppet/pops/types/type_factory.rb +91 -57
  167. data/lib/puppet/pops/types/type_formatter.rb +334 -0
  168. data/lib/puppet/pops/types/type_mismatch_describer.rb +226 -59
  169. data/lib/puppet/pops/types/type_parser.rb +159 -112
  170. data/lib/puppet/pops/types/types.rb +2057 -1247
  171. data/lib/puppet/pops/utils.rb +11 -10
  172. data/lib/puppet/pops/validation.rb +11 -9
  173. data/lib/puppet/pops/validation/checker4_0.rb +83 -55
  174. data/lib/puppet/pops/validation/validator_factory_4_0.rb +8 -4
  175. data/lib/puppet/provider/aixobject.rb +1 -1
  176. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  177. data/lib/puppet/provider/cron/crontab.rb +1 -1
  178. data/lib/puppet/provider/exec/windows.rb +1 -1
  179. data/lib/puppet/provider/macauthorization/macauthorization.rb +10 -9
  180. data/lib/puppet/provider/nameservice/directoryservice.rb +35 -50
  181. data/lib/puppet/provider/package/appdmg.rb +3 -2
  182. data/lib/puppet/provider/package/dnf.rb +1 -1
  183. data/lib/puppet/provider/package/pip.rb +5 -8
  184. data/lib/puppet/provider/package/pip3.rb +1 -1
  185. data/lib/puppet/provider/package/pkg.rb +1 -1
  186. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  187. data/lib/puppet/provider/package/pkgng.rb +13 -4
  188. data/lib/puppet/provider/package/windows.rb +1 -1
  189. data/lib/puppet/provider/package/yum.rb +1 -1
  190. data/lib/puppet/provider/package/zypper.rb +19 -0
  191. data/lib/puppet/provider/service/debian.rb +2 -2
  192. data/lib/puppet/provider/service/launchd.rb +6 -18
  193. data/lib/puppet/provider/service/systemd.rb +9 -2
  194. data/lib/puppet/provider/sshkey/parsed.rb +1 -1
  195. data/lib/puppet/provider/user/aix.rb +1 -1
  196. data/lib/puppet/provider/user/directoryservice.rb +33 -58
  197. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  198. data/lib/puppet/provider/zpool/zpool.rb +1 -1
  199. data/lib/puppet/reference/configuration.rb +1 -1
  200. data/lib/puppet/reference/providers.rb +1 -1
  201. data/lib/puppet/resource.rb +15 -12
  202. data/lib/puppet/resource/capability_finder.rb +20 -13
  203. data/lib/puppet/resource/catalog.rb +60 -3
  204. data/lib/puppet/resource/status.rb +11 -2
  205. data/lib/puppet/resource/type.rb +28 -38
  206. data/lib/puppet/settings.rb +1 -1
  207. data/lib/puppet/settings/config_file.rb +1 -1
  208. data/lib/puppet/settings/environment_conf.rb +13 -5
  209. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  210. data/lib/puppet/ssl/certificate_request.rb +4 -4
  211. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  212. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  213. data/lib/puppet/test/test_helper.rb +16 -4
  214. data/lib/puppet/transaction.rb +15 -2
  215. data/lib/puppet/transaction/additional_resource_generator.rb +6 -2
  216. data/lib/puppet/transaction/report.rb +31 -1
  217. data/lib/puppet/transaction/resource_harness.rb +0 -25
  218. data/lib/puppet/type.rb +11 -11
  219. data/lib/puppet/type/augeas.rb +1 -1
  220. data/lib/puppet/type/cron.rb +12 -12
  221. data/lib/puppet/type/file.rb +91 -39
  222. data/lib/puppet/type/file/checksum_value.rb +53 -0
  223. data/lib/puppet/type/file/content.rb +26 -111
  224. data/lib/puppet/type/file/data_sync.rb +84 -0
  225. data/lib/puppet/type/file/ensure.rb +17 -14
  226. data/lib/puppet/type/file/selcontext.rb +1 -1
  227. data/lib/puppet/type/file/source.rb +103 -18
  228. data/lib/puppet/type/filebucket.rb +1 -1
  229. data/lib/puppet/type/interface.rb +8 -3
  230. data/lib/puppet/type/macauthorization.rb +1 -1
  231. data/lib/puppet/type/package.rb +6 -0
  232. data/lib/puppet/type/schedule.rb +1 -1
  233. data/lib/puppet/type/stage.rb +1 -1
  234. data/lib/puppet/type/user.rb +19 -17
  235. data/lib/puppet/type/yumrepo.rb +20 -0
  236. data/lib/puppet/util.rb +109 -22
  237. data/lib/puppet/util/autoload.rb +16 -11
  238. data/lib/puppet/util/checksums.rb +74 -31
  239. data/lib/puppet/util/execution.rb +1 -1
  240. data/lib/puppet/util/http_proxy.rb +72 -0
  241. data/lib/puppet/util/log.rb +2 -0
  242. data/lib/puppet/util/logging.rb +43 -1
  243. data/lib/puppet/util/monkey_patches.rb +2 -2
  244. data/lib/puppet/util/multi_match.rb +51 -0
  245. data/lib/puppet/util/network_device/cisco/device.rb +10 -2
  246. data/lib/puppet/util/network_device/cisco/interface.rb +21 -8
  247. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  248. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  249. data/lib/puppet/util/plist.rb +130 -0
  250. data/lib/puppet/util/resource_template.rb +1 -1
  251. data/lib/puppet/util/run_mode.rb +2 -2
  252. data/lib/puppet/util/skip_tags.rb +9 -0
  253. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  254. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  255. data/lib/puppet/util/windows/adsi.rb +4 -4
  256. data/lib/puppet/util/windows/api_types.rb +24 -18
  257. data/lib/puppet/util/windows/com.rb +3 -3
  258. data/lib/puppet/util/windows/error.rb +1 -1
  259. data/lib/puppet/util/windows/file.rb +8 -8
  260. data/lib/puppet/util/windows/principal.rb +23 -14
  261. data/lib/puppet/util/windows/process.rb +78 -11
  262. data/lib/puppet/util/windows/registry.rb +1 -1
  263. data/lib/puppet/util/windows/root_certs.rb +5 -5
  264. data/lib/puppet/util/windows/security.rb +33 -35
  265. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  266. data/lib/puppet/util/windows/sid.rb +42 -4
  267. data/lib/puppet/util/windows/taskscheduler.rb +15 -15
  268. data/lib/puppet/util/windows/user.rb +10 -10
  269. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  270. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  271. data/lib/puppet/vendor/pathspec/README.md +1 -1
  272. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  273. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +14 -0
  274. data/lib/puppet/version.rb +1 -1
  275. data/lib/semver.rb +17 -1
  276. data/man/man5/puppet.conf.5 +12 -12
  277. data/man/man8/extlookup2hiera.8 +1 -1
  278. data/man/man8/puppet-agent.8 +2 -2
  279. data/man/man8/puppet-apply.8 +2 -2
  280. data/man/man8/puppet-ca.8 +2 -2
  281. data/man/man8/puppet-catalog.8 +2 -2
  282. data/man/man8/puppet-cert.8 +2 -2
  283. data/man/man8/puppet-certificate.8 +2 -2
  284. data/man/man8/puppet-certificate_request.8 +2 -2
  285. data/man/man8/puppet-certificate_revocation_list.8 +2 -2
  286. data/man/man8/puppet-config.8 +3 -3
  287. data/man/man8/puppet-describe.8 +1 -1
  288. data/man/man8/puppet-device.8 +1 -1
  289. data/man/man8/puppet-doc.8 +1 -1
  290. data/man/man8/puppet-epp.8 +2 -2
  291. data/man/man8/puppet-facts.8 +2 -2
  292. data/man/man8/puppet-file.8 +2 -2
  293. data/man/man8/puppet-filebucket.8 +2 -2
  294. data/man/man8/puppet-help.8 +2 -2
  295. data/man/man8/puppet-inspect.8 +2 -2
  296. data/man/man8/puppet-key.8 +2 -2
  297. data/man/man8/puppet-man.8 +2 -2
  298. data/man/man8/puppet-master.8 +2 -2
  299. data/man/man8/puppet-module.8 +9 -9
  300. data/man/man8/puppet-node.8 +2 -2
  301. data/man/man8/puppet-parser.8 +2 -2
  302. data/man/man8/puppet-plugin.8 +2 -2
  303. data/man/man8/puppet-report.8 +2 -2
  304. data/man/man8/puppet-resource.8 +2 -2
  305. data/man/man8/puppet-resource_type.8 +2 -2
  306. data/man/man8/puppet-status.8 +3 -3
  307. data/man/man8/puppet.8 +1 -1
  308. data/spec/fixtures/module.tar.gz +0 -0
  309. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  310. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -1
  311. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/data/empty.json +0 -0
  312. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/hiera.yaml +5 -0
  313. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/manifests/init.pp +2 -0
  314. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/metadata.json +9 -0
  315. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
  316. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  317. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  318. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/metadata.json +9 -0
  319. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +2 -1
  320. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  321. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +3 -1
  322. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  323. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  324. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  325. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  326. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  327. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
  328. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
  329. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  330. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
  331. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  332. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
  333. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
  334. data/spec/integration/defaults_spec.rb +14 -2
  335. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  336. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  337. data/spec/integration/node/environment_spec.rb +13 -0
  338. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  339. data/spec/integration/parser/parameter_defaults_spec.rb +336 -0
  340. data/spec/integration/parser/undef_param_spec.rb +8 -0
  341. data/spec/integration/provider/yumrepo_spec.rb +1 -1
  342. data/spec/integration/test/test_helper_spec.rb +28 -0
  343. data/spec/integration/transaction/report_spec.rb +16 -0
  344. data/spec/integration/transaction_spec.rb +11 -0
  345. data/spec/integration/type/file_spec.rb +194 -4
  346. data/spec/integration/type/package_spec.rb +5 -1
  347. data/spec/integration/type/tidy_spec.rb +21 -9
  348. data/spec/integration/util/execution_spec.rb +22 -0
  349. data/spec/integration/util/windows/principal_spec.rb +90 -4
  350. data/spec/integration/util/windows/process_spec.rb +31 -0
  351. data/spec/integration/util/windows/security_spec.rb +6 -6
  352. data/spec/integration/util/windows/user_spec.rb +1 -1
  353. data/spec/integration/util_spec.rb +49 -27
  354. data/spec/lib/puppet_spec/compiler.rb +17 -0
  355. data/spec/lib/puppet_spec/files.rb +2 -2
  356. data/spec/lib/puppet_spec/pops.rb +13 -0
  357. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  358. data/spec/shared_contexts/types_setup.rb +96 -0
  359. data/spec/unit/agent_spec.rb +1 -0
  360. data/spec/unit/application/agent_spec.rb +10 -0
  361. data/spec/unit/application/apply_spec.rb +9 -0
  362. data/spec/unit/configurer/downloader_spec.rb +5 -5
  363. data/spec/unit/configurer_spec.rb +271 -39
  364. data/spec/unit/data_providers/hiera_interpolation_spec.rb +57 -0
  365. data/spec/unit/defaults_spec.rb +15 -0
  366. data/spec/unit/environments_spec.rb +24 -4
  367. data/spec/unit/face/parser_spec.rb +43 -2
  368. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  369. data/spec/unit/file_serving/metadata_spec.rb +50 -0
  370. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  371. data/spec/unit/file_system_spec.rb +26 -0
  372. data/spec/unit/functions/assert_type_spec.rb +36 -2
  373. data/spec/unit/functions/defined_spec.rb +2 -2
  374. data/spec/unit/functions/epp_spec.rb +11 -3
  375. data/spec/unit/functions/lookup_spec.rb +58 -13
  376. data/spec/unit/functions/regsubst_spec.rb +1 -1
  377. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  378. data/spec/unit/functions/step_spec.rb +113 -0
  379. data/spec/unit/functions/type_spec.rb +35 -0
  380. data/spec/unit/functions4_spec.rb +61 -5
  381. data/spec/unit/indirector/catalog/compiler_spec.rb +705 -4
  382. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  383. data/spec/unit/indirector/indirection_spec.rb +1 -1
  384. data/spec/unit/info_service_spec.rb +94 -32
  385. data/spec/unit/module_spec.rb +14 -0
  386. data/spec/unit/module_tool/applications/builder_spec.rb +4 -4
  387. data/spec/unit/network/authstore_spec.rb +1 -1
  388. data/spec/unit/network/http/connection_spec.rb +1 -0
  389. data/spec/unit/network/http/pool_spec.rb +30 -0
  390. data/spec/unit/node_spec.rb +1 -1
  391. data/spec/unit/parser/compiler_spec.rb +16 -0
  392. data/spec/unit/parser/scope_spec.rb +28 -11
  393. data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
  394. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  395. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +7 -1
  396. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  397. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  398. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +6 -0
  399. data/spec/unit/pops/loaders/dependency_loader_spec.rb +53 -0
  400. data/spec/unit/pops/loaders/loaders_spec.rb +44 -1
  401. data/spec/unit/pops/parser/lexer2_spec.rb +112 -3
  402. data/spec/unit/pops/parser/parse_calls_spec.rb +8 -0
  403. data/spec/unit/pops/parser/parser_spec.rb +10 -0
  404. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  405. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  406. data/spec/unit/pops/types/recursion_guard_spec.rb +91 -0
  407. data/spec/unit/pops/types/type_acceptor_spec.rb +105 -0
  408. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  409. data/spec/unit/pops/types/type_calculator_spec.rb +275 -373
  410. data/spec/unit/pops/types/type_formatter_spec.rb +280 -0
  411. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +152 -0
  412. data/spec/unit/pops/types/type_parser_spec.rb +58 -13
  413. data/spec/unit/pops/types/types_spec.rb +241 -0
  414. data/spec/unit/pops/validator/validator_spec.rb +100 -43
  415. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  416. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  417. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  418. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  419. data/spec/unit/provider/package/dnf_spec.rb +16 -0
  420. data/spec/unit/provider/package/pip3_spec.rb +60 -42
  421. data/spec/unit/provider/package/pip_spec.rb +47 -34
  422. data/spec/unit/provider/package/pkgdmg_spec.rb +18 -9
  423. data/spec/unit/provider/package/pkgng_spec.rb +4 -2
  424. data/spec/unit/provider/package/yum_spec.rb +11 -0
  425. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  426. data/spec/unit/provider/service/launchd_spec.rb +17 -35
  427. data/spec/unit/provider/service/systemd_spec.rb +7 -0
  428. data/spec/unit/provider/sshkey/parsed_spec.rb +20 -19
  429. data/spec/unit/provider/user/directoryservice_spec.rb +40 -59
  430. data/spec/unit/resource/capability_finder_spec.rb +28 -15
  431. data/spec/unit/resource/catalog_spec.rb +33 -1
  432. data/spec/unit/resource/type_spec.rb +149 -7
  433. data/spec/unit/resource_spec.rb +96 -57
  434. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  435. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  436. data/spec/unit/transaction/report_spec.rb +27 -0
  437. data/spec/unit/transaction/resource_harness_spec.rb +0 -47
  438. data/spec/unit/transaction_spec.rb +5 -0
  439. data/spec/unit/type/file/checksum_spec.rb +6 -0
  440. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  441. data/spec/unit/type/file/content_spec.rb +12 -193
  442. data/spec/unit/type/file/source_spec.rb +211 -119
  443. data/spec/unit/type/file_spec.rb +133 -34
  444. data/spec/unit/type/interface_spec.rb +32 -0
  445. data/spec/unit/type/macauthorization_spec.rb +4 -1
  446. data/spec/unit/type/yumrepo_spec.rb +2 -2
  447. data/spec/unit/util/filetype_spec.rb +1 -1
  448. data/spec/unit/util/http_proxy_spec.rb +2 -2
  449. data/spec/unit/util/log/destinations_spec.rb +0 -2
  450. data/spec/unit/util/logging_spec.rb +69 -0
  451. data/spec/unit/util/multi_match_spec.rb +39 -0
  452. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  453. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  454. data/spec/unit/util/plist_spec.rb +110 -0
  455. data/spec/unit/util/resource_template_spec.rb +2 -2
  456. data/spec/unit/util/run_mode_spec.rb +27 -3
  457. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  458. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  459. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  460. data/spec/unit/util/windows/sid_spec.rb +1 -1
  461. data/spec/unit/util_spec.rb +123 -13
  462. data/tasks/cfpropertylist.rake +15 -0
  463. metadata +114 -26
  464. data/lib/puppet/vendor/load_plist.rb +0 -1
  465. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  466. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  467. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  468. data/lib/puppet/vendor/plist/README +0 -36
  469. data/lib/puppet/vendor/plist/Rakefile +0 -144
  470. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  471. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  472. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  473. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  474. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  475. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  476. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  477. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  478. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  479. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  480. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  481. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  482. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  483. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  484. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  485. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  486. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  487. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
@@ -6,12 +6,9 @@ module Puppet::Pops
6
6
  class MergeStrategy
7
7
  NOT_FOUND = Object.new.freeze
8
8
 
9
- TypeAsserter = Puppet::Pops::Types::TypeAsserter
10
- TypeParser = Puppet::Pops::Types::TypeParser
11
-
12
9
  # The type used for validation of the _merge_ argument
13
10
  def self.merge_t
14
- @@merge_t ||= TypeParser.new.parse("Variant[String[1],Runtime[ruby,'Symbol'],Hash[Variant[String[1],Runtime[ruby,'Symbol']],Scalar,1]]")
11
+ @@merge_t ||= Types::TypeParser.new.parse("Variant[String[1],Runtime[ruby,'Symbol'],Hash[Variant[String[1],Runtime[ruby,'Symbol']],Scalar,1]]")
15
12
  end
16
13
  private_class_method :merge_t
17
14
 
@@ -22,14 +19,14 @@ module Puppet::Pops
22
19
 
23
20
  # Finds the merge strategy for the given _merge_, creates an instance of it and returns that instance.
24
21
  #
25
- # @param merge [Puppet::Pops::MergeStrategy,String,Hash<String,Object>,nil] The merge strategy. Can be a string or symbol denoting the key
22
+ # @param merge [MergeStrategy,String,Hash<String,Object>,nil] The merge strategy. Can be a string or symbol denoting the key
26
23
  # identifier or a hash with options where the key 'strategy' denotes the key
27
24
  # @return [MergeStrategy] The matching merge strategy
28
25
  #
29
26
  def self.strategy(merge)
30
27
  return merge if merge.is_a?(MergeStrategy)
31
28
  merge = :first if merge.nil?
32
- TypeAsserter.assert_instance_of("MergeStrategy 'merge' parameter", merge_t, merge)
29
+ Types::TypeAsserter.assert_instance_of("MergeStrategy 'merge' parameter", merge_t, merge)
33
30
  if merge.is_a?(Hash)
34
31
  merge_strategy = merge['strategy']
35
32
  if merge_strategy.nil?
@@ -82,7 +79,7 @@ module Puppet::Pops
82
79
  # Create a new instance of this strategy configured with the given _options_
83
80
  # @param merge_options [Hash<String,Object>] Merge options
84
81
  def initialize(options)
85
- assert_type('merge_options', options_t, options)
82
+ assert_type('The merge options', options_t, options)
86
83
  @options = options
87
84
  end
88
85
 
@@ -95,8 +92,8 @@ module Puppet::Pops
95
92
  #
96
93
  def merge(e1, e2)
97
94
  checked_merge(
98
- assert_type('e1', value_t, e1),
99
- assert_type('e2', value_t, e2))
95
+ assert_type('The first element of the merge', value_t, e1),
96
+ assert_type('The second element of the merge', value_t, e2))
100
97
  end
101
98
 
102
99
  # Merges the result of yielding the given _lookup_variants_ to a given block.
@@ -149,15 +146,15 @@ module Puppet::Pops
149
146
 
150
147
  # Returns the type used to validate the options hash
151
148
  #
152
- # @return [Puppet::Pops::Types::PStructType] the puppet type
149
+ # @return [Types::PStructType] the puppet type
153
150
  #
154
151
  def options_t
155
- @options_t ||=TypeParser.new.parse("Struct[{strategy=>Optional[Pattern[#{self.class.key}]]}]")
152
+ @options_t ||=Types::TypeParser.new.parse("Struct[{strategy=>Optional[Pattern[#{self.class.key}]]}]")
156
153
  end
157
154
 
158
155
  # Returns the type used to validate the options hash
159
156
  #
160
- # @return [Puppet::Pops::Types::PAnyType] the puppet type
157
+ # @return [Types::PAnyType] the puppet type
161
158
  #
162
159
  def value_t
163
160
  raise NotImplementedError, "Subclass must implement 'value_t'"
@@ -168,7 +165,7 @@ module Puppet::Pops
168
165
  end
169
166
 
170
167
  def assert_type(param, type, value)
171
- TypeAsserter.assert_instance_of(param, type, value)
168
+ Types::TypeAsserter.assert_instance_of(param, type, value)
172
169
  end
173
170
  end
174
171
 
@@ -195,7 +192,7 @@ module Puppet::Pops
195
192
  protected
196
193
 
197
194
  def value_t
198
- @value_t ||= Puppet::Pops::Types::PAnyType::DEFAULT
195
+ @value_t ||= Types::PAnyType::DEFAULT
199
196
  end
200
197
 
201
198
  MergeStrategy.add_strategy(self)
@@ -220,7 +217,7 @@ module Puppet::Pops
220
217
  protected
221
218
 
222
219
  def value_t
223
- @value_t ||= Puppet::Pops::Types::TypeParser.new.parse('Hash[String,Data]')
220
+ @value_t ||= Types::TypeParser.new.parse('Hash[String,Data]')
224
221
  end
225
222
 
226
223
  MergeStrategy.add_strategy(self)
@@ -252,7 +249,7 @@ module Puppet::Pops
252
249
  protected
253
250
 
254
251
  def value_t
255
- @value_t ||= Puppet::Pops::Types::TypeParser.new.parse('Variant[Scalar,Array[Data]]')
252
+ @value_t ||= Types::TypeParser.new.parse('Variant[Scalar,Array[Data]]')
256
253
  end
257
254
 
258
255
  MergeStrategy.add_strategy(self)
@@ -330,9 +327,9 @@ module Puppet::Pops
330
327
  # Returns a type that allows all deep_merge options except 'preserve_unmergeables' since we force
331
328
  # the setting of that option to false
332
329
  #
333
- # @return [Puppet::Pops::Types::PAnyType] the puppet type used when validating the options hash
330
+ # @return [Types::PAnyType] the puppet type used when validating the options hash
334
331
  def options_t
335
- @options_t ||= Puppet::Pops::Types::TypeParser.new.parse('Struct[{'\
332
+ @options_t ||= Types::TypeParser.new.parse('Struct[{'\
336
333
  "strategy=>Optional[Pattern[#{self.class.key}]],"\
337
334
  'knockout_prefix=>Optional[String],'\
338
335
  'merge_debug=>Optional[Boolean],'\
@@ -343,7 +340,7 @@ module Puppet::Pops
343
340
  end
344
341
 
345
342
  def value_t
346
- @value_t ||= Puppet::Pops::Types::TypeParser.new.parse('Variant[Array[Data],Hash[String,Data]]')
343
+ @value_t ||= Types::TypeParser.new.parse('Variant[Array[Data],Hash[String,Data]]')
347
344
  end
348
345
 
349
346
  MergeStrategy.add_strategy(self)
@@ -334,6 +334,20 @@ class Factory
334
334
  o
335
335
  end
336
336
 
337
+ def build_TypeAlias(o, name, type_expr)
338
+ o.type_expr = build(type_expr)
339
+ o.name = name
340
+ o
341
+ end
342
+
343
+ def build_TypeDefinition(o, name, parent, body)
344
+ b = f_build_body(body)
345
+ o.body = b.current if b
346
+ o.parent = parent
347
+ o.name = name
348
+ o
349
+ end
350
+
337
351
  def build_UnaryExpression(o, expr)
338
352
  ops = to_ops(expr)
339
353
  o.expr = ops unless Factory.nop? ops
@@ -792,6 +806,14 @@ class Factory
792
806
  new(LambdaExpression, parameters, body)
793
807
  end
794
808
 
809
+ def self.TYPE_ALIAS(name, type_expr)
810
+ new(TypeAlias, name, type_expr)
811
+ end
812
+
813
+ def self.TYPE_DEFINITION(name, parent, body)
814
+ new(TypeDefinition, name, parent, body)
815
+ end
816
+
795
817
  def self.nop? o
796
818
  o.nil? || o.is_a?(Nop)
797
819
  end
@@ -867,7 +889,7 @@ class Factory
867
889
 
868
890
  # Transforms a left expression followed by an untitled resource (in the form of attribute_operations)
869
891
  # @param left [Factory, Expression] the lhs followed what may be a hash
870
- def self.transform_resource_wo_title(left, attribute_ops)
892
+ def self.transform_resource_wo_title(left, attribute_ops, lbrace_token, rbrace_token)
871
893
  # Returning nil means accepting the given as a potential resource expression
872
894
  return nil unless attribute_ops.is_a? Array
873
895
  return nil unless left.current.is_a?(QualifiedName)
@@ -875,7 +897,9 @@ class Factory
875
897
  return nil if ao.operator == :'+>'
876
898
  KEY_ENTRY(ao.attribute_name, ao.value_expr)
877
899
  end
878
- result = block_or_expression(*transform_calls([left, HASH(keyed_entries)]))
900
+ a_hash = HASH(keyed_entries)
901
+ a_hash.record_position(lbrace_token, rbrace_token)
902
+ result = block_or_expression(*transform_calls([left, a_hash]))
879
903
  result
880
904
  end
881
905
 
@@ -19,9 +19,9 @@ module Puppet::Pops
19
19
  module Model
20
20
 
21
21
  class PopsObject
22
- include Puppet::Pops::Visitable
23
- include Puppet::Pops::Adaptable
24
- include Puppet::Pops::Containment
22
+ include Visitable
23
+ include Adaptable
24
+ include Containment
25
25
  end
26
26
 
27
27
  class Positioned
@@ -43,7 +43,7 @@ module Puppet::Pops
43
43
  #
44
44
  def locator
45
45
  unless result = getLocator
46
- setLocator(result = Puppet::Pops::Parser::Locator.locator(source_text, source_ref(), line_offsets))
46
+ setLocator(result = Parser::Locator.locator(source_text, source_ref(), line_offsets))
47
47
  end
48
48
  result
49
49
  end
@@ -55,18 +55,18 @@ module Puppet::Pops
55
55
  def locator
56
56
  unless result = getLocator
57
57
  # Adapt myself to get the Locator for me
58
- adapter = Puppet::Pops::Adapters::SourcePosAdapter.adapt(self)
58
+ adapter = Adapters::SourcePosAdapter.adapt(self)
59
59
  # Get the program (root), and deal with case when not contained in a program
60
60
  program = eAllContainers.find {|c| c.is_a?(Program) }
61
61
  source_ref = program.nil? ? '' : program.source_ref
62
62
 
63
63
  # An outer locator is needed since SubLocator only deals with offsets. This outer locator
64
64
  # has 0,0 as origin.
65
- outer_locator = Puppet::Pops::Parser::Locator.locator(adpater.extract_text, source_ref, line_offsets)
65
+ outer_locator = Parser::Locator.locator(adpater.extract_text, source_ref, line_offsets)
66
66
 
67
67
  # Create a sublocator that describes an offset from the outer
68
68
  # NOTE: the offset of self is the same as the sublocator's leading_offset
69
- result = Puppet::Pops::Parser::Locator::SubLocator.new(outer_locator,
69
+ result = Parser::Locator::SubLocator.new(outer_locator,
70
70
  leading_line_count, offset, leading_line_offset)
71
71
  setLocator(result)
72
72
  end
@@ -111,7 +111,7 @@ module Puppet::Pops
111
111
  module ClassModule
112
112
  def locator
113
113
  unless result = getLocator
114
- setLocator(result = Puppet::Pops::Parser::Locator.locator(source_text, source_ref(), line_offsets, char_offsets))
114
+ setLocator(result = Parser::Locator.locator(source_text, source_ref(), line_offsets, char_offsets))
115
115
  end
116
116
  result
117
117
  end
@@ -1,12 +1,14 @@
1
+ module Puppet::Pops
2
+ module Model
1
3
  # A provider of labels for model object, producing a human name for the model object.
2
4
  # As an example, if object is an ArithmeticExpression with operator +, `#a_an(o)` produces "a '+' Expression",
3
5
  # #the(o) produces "the + Expression", and #label produces "+ Expression".
4
6
  #
5
- class Puppet::Pops::Model::ModelLabelProvider
6
- include Puppet::Pops::LabelProvider
7
+ class ModelLabelProvider
8
+ include LabelProvider
7
9
 
8
10
  def initialize
9
- @@label_visitor ||= Puppet::Pops::Visitor.new(self,"label",0,0)
11
+ @@label_visitor ||= Visitor.new(self,"label",0,0)
10
12
  end
11
13
 
12
14
  # Produces a label for the given objects type/operator without article.
@@ -89,16 +91,18 @@ class Puppet::Pops::Model::ModelLabelProvider
89
91
  def label_Hash o ; "Hash" end
90
92
  def label_QualifiedName o ; "Name" end
91
93
  def label_QualifiedReference o ; "Type-Name" end
92
- def label_PAnyType o ; "#{Puppet::Pops::Types::TypeCalculator.string(o)}-Type" end
94
+ def label_PAnyType o ; "#{o}-Type" end
93
95
  def label_ReservedWord o ; "Reserved Word '#{o.word}'" end
94
96
  def label_CatalogCollector o ; "Catalog-Collector" end
95
97
  def label_ExportedCollector o ; "Exported-Collector" end
98
+ def label_TypeAlias o ; "Type Alias" end
99
+ def label_TypeDefinition o ; "Type Definition" end
96
100
 
97
101
  def label_PResourceType o
98
102
  if o.title
99
- "#{Puppet::Pops::Types::TypeCalculator.string(o)} Resource-Reference"
103
+ "#{o} Resource-Reference"
100
104
  else
101
- "#{Puppet::Pops::Types::TypeCalculator.string(o)}-Type"
105
+ "#{o}-Type"
102
106
  end
103
107
  end
104
108
 
@@ -108,7 +112,7 @@ class Puppet::Pops::Model::ModelLabelProvider
108
112
 
109
113
 
110
114
  def label_Class o
111
- if o <= Puppet::Pops::Types::PAnyType
115
+ if o <= Types::PAnyType
112
116
  simple_name = o.name.split('::').last
113
117
  simple_name[1..-5] + "-Type"
114
118
  else
@@ -116,3 +120,5 @@ class Puppet::Pops::Model::ModelLabelProvider
116
120
  end
117
121
  end
118
122
  end
123
+ end
124
+ end
@@ -294,6 +294,23 @@ module Puppet::Pops::Model
294
294
  class Application < NamedDefinition
295
295
  end
296
296
 
297
+ # Abstract base class for QREF named non-parameterized definitions
298
+ class QRefDefinition < Definition
299
+ abstract
300
+ has_attr 'name', String, :lowerBound => 1
301
+ end
302
+
303
+ # A type alias assignment
304
+ class TypeAlias < QRefDefinition
305
+ contains_one_uni 'type_expr', Expression
306
+ end
307
+
308
+ # A type definition
309
+ class TypeDefinition < QRefDefinition
310
+ has_attr 'parent', String
311
+ contains_one_uni 'body', Expression
312
+ end
313
+
297
314
  # A node definition matches hosts using Strings, or Regular expressions. It may inherit from
298
315
  # a parent node (also using a String or Regular expression).
299
316
  #
@@ -415,6 +415,14 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
415
415
  ["sublocated", do_dump(o.expr)]
416
416
  end
417
417
 
418
+ def dump_TypeAlias(o)
419
+ ['type-alias', o.name, do_dump(o.type_expr)]
420
+ end
421
+
422
+ def dump_TypeDefinition(o)
423
+ ['type-definition', o.name, o.parent, do_dump(o.body)]
424
+ end
425
+
418
426
  def dump_Object o
419
427
  [o.class.to_s, o.to_s]
420
428
  end
@@ -20,8 +20,8 @@ token NUMBER
20
20
  token HEREDOC SUBLOCATE
21
21
  token RENDER_STRING RENDER_EXPR EPP_START EPP_END EPP_END_TRIM
22
22
  token FUNCTION
23
- token PRIVATE ATTR TYPE
24
- token FUNCTION
23
+ token TYPE
24
+ token PRIVATE ATTR
25
25
  token APPLICATION_R CONSUMES_R PRODUCES_R SITE_R
26
26
  token APPLICATION PRODUCES CONSUMES SITE
27
27
  token LOW
@@ -160,7 +160,7 @@ resource
160
160
  # If the attribute operations does not include +>, then the found expression
161
161
  # is actually a LEFT followed by LITERAL_HASH
162
162
  #
163
- unless tmp = transform_resource_wo_title(val[0], val[2])
163
+ unless tmp = transform_resource_wo_title(val[0], val[2], val[1], val[4])
164
164
  error val[1], "Syntax error resource body without title or hash with +>"
165
165
  end
166
166
  tmp
@@ -250,6 +250,8 @@ primary_expression
250
250
  | site_definition_expression
251
251
  | epp_render_expression
252
252
  | function_definition
253
+ | type_alias
254
+ | type_definition
253
255
  | reserved_word
254
256
  | array
255
257
  | hash
@@ -268,25 +270,29 @@ primary_expression
268
270
  # Produces Model::CallNamedFunction
269
271
 
270
272
  call_function_expression
271
- : expression LPAREN assignments endcomma RPAREN {
272
- result = Factory.CALL_NAMED(val[0], true, val[2])
273
- loc result, val[0], val[4]
273
+ : call_function_start assignments endcomma RPAREN {
274
+ result = Factory.CALL_NAMED(val[0], true, val[1])
275
+ loc result, val[0], val[3]
274
276
  }
275
- | expression LPAREN RPAREN {
277
+ | call_function_start RPAREN {
276
278
  result = Factory.CALL_NAMED(val[0], true, [])
277
- loc result, val[0], val[2]
279
+ loc result, val[0], val[1]
278
280
  }
279
- | expression LPAREN assignments endcomma RPAREN lambda {
280
- result = Factory.CALL_NAMED(val[0], true, val[2])
281
+ | call_function_start assignments endcomma RPAREN lambda {
282
+ result = Factory.CALL_NAMED(val[0], true, val[1])
281
283
  loc result, val[0], val[4]
282
- result.lambda = val[5]
284
+ result.lambda = val[4]
283
285
  }
284
- | expression LPAREN RPAREN lambda {
286
+ | call_function_start RPAREN lambda {
285
287
  result = Factory.CALL_NAMED(val[0], true, [])
286
288
  loc result, val[0], val[2]
287
- result.lambda = val[3]
289
+ result.lambda = val[2]
288
290
  }
289
291
 
292
+ call_function_start
293
+ : expression LPAREN { result = val[0] }
294
+ | TYPE LPAREN { result = Factory.QNAME(val[0][:value]); loc result, val[0] }
295
+
290
296
  #---CALL METHOD
291
297
  #
292
298
  call_method_with_lambda_expression
@@ -676,6 +682,25 @@ parameter_type
676
682
  : type { result = val[0] }
677
683
  | type LBRACK expressions RBRACK { result = val[0][*val[2]] ; loc result, val[0], val[3] }
678
684
 
685
+ #--TYPE ALIAS
686
+ type_alias
687
+ : TYPE CLASSREF EQUALS expression {
688
+ result = add_definition(Factory.TYPE_ALIAS(val[1][:value], val[3]))
689
+ loc(result, val[0], val[3])
690
+ }
691
+
692
+ #--TYPE definition
693
+ # TODO: Uses the optional_statements rule temporarily since the actual body awaits final spec on methods and attributes.
694
+ type_definition
695
+ : TYPE CLASSREF LBRACE optional_statements RBRACE {
696
+ result = add_definition(Factory.TYPE_DEFINITION(val[1][:value], nil, val[3]))
697
+ loc(result, val[0], val[4])
698
+ }
699
+ | TYPE CLASSREF INHERITS CLASSREF LBRACE optional_statements RBRACE {
700
+ result = add_definition(Factory.TYPE_DEFINITION(val[1][:value], val[3][:value], val[5]))
701
+ loc(result, val[0], val[6])
702
+ }
703
+
679
704
  #--VARIABLE
680
705
  #
681
706
  variable
@@ -685,7 +710,6 @@ variable
685
710
  #
686
711
  reserved_word
687
712
  : PRIVATE { result = Factory.RESERVED(val[0][:value]) ; loc result, val[0] }
688
- | TYPE { result = Factory.RESERVED(val[0][:value]) ; loc result, val[0] }
689
713
  | ATTR { result = Factory.RESERVED(val[0][:value]) ; loc result, val[0] }
690
714
  | APPLICATION_R { result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0] }
691
715
  | CONSUMES_R { result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0] }
@@ -20,7 +20,7 @@ module Puppet
20
20
  module Parser
21
21
  class Parser < Racc::Parser
22
22
 
23
- module_eval(<<'...end egrammar.ra/module_eval...', 'egrammar.ra', 817)
23
+ module_eval(<<'...end egrammar.ra/module_eval...', 'egrammar.ra', 841)
24
24
 
25
25
  # Make emacs happy
26
26
  # Local Variables:
@@ -30,294 +30,305 @@ module_eval(<<'...end egrammar.ra/module_eval...', 'egrammar.ra', 817)
30
30
  ##### State transition tables begin ###
31
31
 
32
32
  clist = [
33
- '72,74,140,-260,56,67,362,68,-263,111,-139,-251,269,157,448,291,314,286',
34
- '292,424,363,-262,424,113,20,116,123,110,112,374,47,425,50,270,62,12',
35
- '-265,54,41,44,380,49,42,10,11,-260,158,57,19,115,-263,43,-139,-251,17',
36
- '18,-134,129,315,98,97,122,79,-262,93,94,72,74,48,124,159,92,40,75,285',
37
- '77,78,76,-265,-138,55,63,65,64,58,59,60,61,51,-180,-180,53,72,74,66',
38
- '382,56,67,-134,68,99,111,-136,420,383,419,125,126,127,128,420,257,419',
39
- '-176,-176,113,20,116,123,110,112,-138,47,257,50,373,62,134,357,54,41',
40
- '44,293,49,42,-174,-174,295,294,57,19,115,389,43,-136,372,17,18,391,129',
41
- '371,98,97,122,79,261,93,94,-179,-179,48,124,259,92,40,75,257,77,78,-175',
42
- '-175,-137,55,63,65,64,58,59,60,61,51,-177,-177,53,72,74,66,288,56,67',
43
- '398,68,99,111,-177,-177,-180,-180,125,126,127,128,131,132,306,307,399',
44
- '113,20,116,288,110,112,-137,47,401,50,312,62,12,313,54,41,44,81,49,42',
45
- '10,11,-179,-179,57,19,115,403,43,-174,-174,17,18,257,95,96,98,97,361',
46
- '79,406,93,94,-178,-178,48,91,123,92,40,75,357,77,78,269,131,132,55,63',
47
- '65,64,58,59,60,61,51,269,273,53,72,74,66,351,56,67,270,68,99,129,269',
48
- '412,269,122,413,269,-178,-178,358,91,262,124,123,273,20,273,247,246',
49
- '273,417,47,270,50,270,62,12,270,54,41,44,357,49,42,10,11,304,421,57',
50
- '19,423,353,43,83,129,17,18,179,122,125,126,127,128,79,176,350,124,433',
51
- '174,48,293,436,346,40,75,312,77,78,344,343,140,55,63,65,64,58,59,60',
52
- '61,51,288,440,53,72,74,66,320,56,67,149,68,468,377,125,126,127,128,443',
53
- '312,83,446,312,141,91,91,123,140,20,451,423,453,123,91,47,119,50,454',
54
- '62,12,455,54,41,44,456,49,42,10,11,312,91,57,19,460,461,43,462,129,17',
55
- '18,463,122,464,129,91,312,79,122,83,124,472,473,48,80,475,124,40,75',
56
- '476,77,78,477,346,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
57
- '68,466,111,125,126,127,128,,,125,126,127,128,,,,113,20,116,,110,112',
58
- ',47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,115,,43,,,17,18,,95,96',
59
- '98,97,,79,,93,94,,,48,,123,92,40,75,,77,78,,,,55,63,65,64,58,59,60,61',
60
- '51,,,53,72,74,66,,56,67,,68,99,129,,,,122,,,409,,,,,124,123,,20,,,,',
61
- ',47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,129,17,18,,122,125',
62
- '126,127,128,79,,,124,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61',
63
- '51,,,53,72,74,66,,56,67,,68,,111,125,126,127,128,,,,,,,,123,,113,20',
64
- '116,123,110,112,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,115,,43',
65
- '129,,17,18,122,129,,,,122,79,,124,,,,48,124,,92,40,75,,77,78,,,,55,63',
66
- '65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,125,126,127,128,,125',
67
- '126,127,128,,,,123,,,20,,,-250,123,,47,,50,,62,12,,54,41,44,,49,42,10',
68
- '11,,,57,19,,,43,129,,17,18,122,,,129,,,79,122,124,,,,48,-250,,124,40',
69
- '75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,125',
70
- '126,127,128,,,,125,126,127,128,,,,,20,,,,,,47,,50,,62,134,,54,41,44',
71
- ',49,42,,,,,57,19,,,43,,,17,18,84,85,86,,,,79,,,,,,48,,,,40,75,,77,78',
72
- ',,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,459,111,,,,87',
73
- '89,88,90,72,74,,,159,,113,20,116,,110,112,,47,,50,,62,12,,54,41,44,',
74
- '49,42,10,11,,,57,19,115,,43,,,17,18,157,,,154,,,79,72,74,,,159,48,,',
75
- '92,40,75,,77,78,,,79,55,63,65,64,58,59,60,61,51,158,75,53,72,74,66,',
76
- '56,67,,68,,111,157,,,154,,,,72,74,,,159,,113,20,116,,110,112,,47,,50',
77
- '79,62,134,,54,41,44,,49,42,158,75,,,57,19,115,,43,,,17,18,157,,,154',
78
- ',,79,72,74,,,159,48,,,,40,75,,77,78,,,79,55,63,65,64,58,59,60,61,51',
79
- '158,75,53,72,74,66,,56,67,,68,,111,157,,,154,,,,,,,,,,113,20,116,,110',
80
- '112,,47,,50,79,62,134,,54,41,44,,49,42,158,75,,,57,19,115,,43,,,17,18',
81
- ',,,,,,79,,93,94,,,48,,,92,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51',
82
- ',,53,72,74,66,111,56,67,,68,,111,,,,,,,,113,,116,,110,112,113,20,116',
83
- ',110,112,,47,,50,,62,134,,54,41,44,,49,42,115,,,,57,19,115,,43,,,17',
84
- '18,,,93,94,,,79,,,92,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61',
85
- '51,,,53,72,74,66,,56,67,,68,,111,,,,,,,,,,,,,,113,20,116,,110,112,,47',
86
- ',50,,62,12,,54,41,44,,49,42,10,11,,,57,19,115,,43,,,17,18,,,,,,,79,',
87
- '93,94,,,48,,,92,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74',
88
- '66,111,56,67,,68,,111,,,,,,,,113,,116,,110,112,113,20,116,,110,112,',
89
- '47,,50,,62,134,,54,41,44,,49,42,115,,,,57,19,115,,43,,,17,18,,,,,,,79',
90
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
91
- ',56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,',
92
- ',,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64',
93
- '58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,',
94
- '50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
95
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
96
- '68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19',
97
- ',,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60',
98
- '61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134',
99
- ',54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77',
100
- '78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,',
101
- ',,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18',
102
- ',,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53',
103
- '72,74,66,,56,67,,68,,,313,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41',
104
- '44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,',
105
- ',55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,167,,,,,,,,,,,',
106
- ',,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18',
107
- ',,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53',
108
- '72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44',
109
- ',49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,',
110
- ',,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,',
111
- ',,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,',
112
- ',,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72',
113
- '74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49',
114
- '42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55',
115
- '63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,355,,,,,,,,,,,,,,,',
116
- '20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,',
117
- ',,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72',
118
- '74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49',
119
- '42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63',
120
- '65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,365,,,,,,,,,,,,,,,,20',
121
- ',,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,',
122
- ',79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74',
123
- '66,,56,67,,68,367,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49',
124
- '42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55',
125
- '63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20',
126
- ',,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79',
127
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
128
- ',56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10',
129
- '11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65',
130
- '64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47',
131
- ',50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,',
132
- ',48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56',
133
- '67,163,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10',
134
- '11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65',
135
- '64,58,59,60,61,51,,,53,72,74,66,,56,67,165,68,,,,,,,,,,,,,,,,,20,,,',
136
- ',,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79',
137
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
138
- ',56,67,,68,167,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42',
139
- '10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63',
140
- '65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,',
141
- ',,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79',
142
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
143
- ',56,67,,68,283,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42',
144
- '10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63',
145
- '65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,',
146
- ',,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79',
147
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
148
- ',56,67,,178,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42',
149
- ',,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65',
150
- '64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47',
151
- ',50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,',
152
- ',48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56',
153
- '67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11',
154
- ',,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64',
155
- '58,59,60,61,51,,,53,72,74,66,,56,67,,68,426,,,,,,,,,,,,,,,,20,,,,,,47',
156
- ',50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
157
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
158
- '68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57',
159
- '19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59',
160
- '60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62',
161
- '12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40',
162
- '75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,',
163
- ',,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,',
164
- '43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60',
165
- '61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12',
166
- ',54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75',
167
- ',77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,',
168
- ',,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43',
169
- ',,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61',
170
- '51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54',
171
- '41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77',
172
- '78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,',
173
- ',,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17',
174
- '18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,',
175
- '53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41',
176
- '44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78',
177
- ',,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,',
178
- ',,,20,,,,,,195,214,205,215,62,207,217,208,41,194,,197,192,,,,,57,19',
179
- '218,213,193,,,17,191,,,,,,,79,,,,,216,196,,,,40,75,,77,78,,,,209,210',
180
- '212,211,200,201,202,203,206,219,,53,72,74,66,,56,67,,68,,,,,,,,,,,,',
181
- ',,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,',
182
- ',,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72',
183
- '74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49',
184
- '42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63',
185
- '65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,',
186
- ',,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,',
187
- ',,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56',
188
- '67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57',
189
- '19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59',
190
- '60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62',
191
- '134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75',
192
- ',77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,',
193
- ',,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17',
194
- '18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,',
195
- '53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41',
196
- '44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,',
197
- ',55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,',
198
- ',20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,',
199
- ',,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74',
200
- '66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42',
201
- ',,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65',
202
- '64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47',
203
- ',50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
204
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
205
- '68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19',
206
- ',,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60',
207
- '61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134',
208
- ',54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77',
209
- '78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,',
210
- ',,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18',
211
- ',,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53',
212
- '72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44',
213
- ',49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55',
214
- '63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20',
215
- ',,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79',
216
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
217
- ',56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,',
218
- ',,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64',
219
- '58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,',
220
- '50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
221
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
222
- '68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19',
223
- ',,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60',
224
- '61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134',
225
- ',54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,241,40,75',
226
- ',77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,',
227
- ',,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17',
228
- '18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,',
229
- '53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,245,,,,,47,,50,,62,12,,54',
230
- '41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77',
231
- '78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,',
232
- ',,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17',
233
- '18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,',
234
- '53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41',
235
- '44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,',
236
- ',55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,',
237
- ',20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,',
238
- ',,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74',
239
- '66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42',
240
- ',,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65',
241
- '64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47',
242
- ',50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
243
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
244
- '68,384,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12,,54,41,44,,49,42,10,11,',
245
- ',57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64',
246
- '58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,',
247
- '50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48',
248
- ',,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,',
249
- '68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19',
250
- ',,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60',
251
- '61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,12',
252
- ',54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75',
253
- ',77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,',
254
- ',,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17',
255
- '18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,',
256
- '53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,275,,,,,47,,50,,62,12,,54',
257
- '41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77',
258
- '78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,',
259
- ',,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18',
260
- ',,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53',
261
- '72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44',
262
- ',49,42,,,,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55',
263
- '63,65,64,58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20',
264
- ',,,,,47,,50,,62,134,,54,41,44,,49,42,,,,,57,19,,,43,,,17,18,,,,,,,79',
265
- ',,,,,48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,,53,72,74,66',
266
- ',56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,,50,,62,134,,54,41,44,,49,42,',
267
- ',,,57,19,,,43,,,17,18,,,,,,,79,,,,,,48,,,,40,75,,77,78,,,,55,63,65,64',
268
- '58,59,60,61,51,,,53,72,74,66,,56,67,,68,,,,,,,,,,,,,,,,,20,,,,,,47,',
269
- '50,,62,12,,54,41,44,,49,42,10,11,,,57,19,,,43,,,17,18,,,,,,,79,,,,,',
270
- '48,,,,40,75,,77,78,,,,55,63,65,64,58,59,60,61,51,,111,53,276,,66,,,',
271
- ',,,,107,102,113,,116,,110,112,,103,105,104,106,,,,,,,,,,,,,,,,115,,',
272
- ',109,108,,,95,96,98,97,100,101,,93,94,111,,277,,,92,,,,,,,107,102,113',
273
- ',116,,110,112,,103,105,104,106,,,,,,,,,,99,,,,,,115,,,,109,108,,,95',
274
- '96,98,97,100,101,,93,94,111,,278,,,92,,,,,,,107,102,113,,116,111,110',
275
- '112,,103,105,104,106,,,,,,,113,,116,99,110,112,,,,115,,,,109,108,,,95',
276
- '96,98,97,100,101,,93,94,115,,,,,92,,,95,96,98,97,100,101,111,93,94,',
277
- ',,,,92,,,,107,102,113,,116,,110,112,99,103,105,104,106,,,,,,,,,,,,,99',
278
- ',,115,,,,109,108,,,95,96,98,97,100,101,111,93,94,,,,,,92,,,,107,102',
279
- '113,,116,,110,112,,103,105,104,106,,,,,,,,,,,,,99,,,115,,,,109,108,',
280
- ',95,96,98,97,100,101,111,93,94,,,,,,92,,,,107,102,113,,116,,110,112',
281
- ',103,105,104,106,,,,,,,,,,,,,99,,,115,,,,109,108,,,95,96,98,97,100,101',
282
- '111,93,94,,,,,,92,,,,107,102,113,,116,,110,112,,103,105,104,106,,,,',
283
- ',,,,,,,,99,,,115,,,,109,108,,,95,96,98,97,100,101,111,93,94,,,,,,92',
284
- ',,,107,102,113,,116,,110,112,,103,105,104,106,,,,,,,,,,,,,99,,,115,',
285
- ',,109,108,,,95,96,98,97,100,101,111,93,94,,,,,,92,,,,107,102,113,,116',
286
- ',110,112,,103,105,104,106,,,,,,,,,,,,,99,,,115,,,,109,108,,,95,96,98',
287
- '97,100,101,111,93,94,,,,,,92,,,,107,102,113,347,116,,110,112,,103,105',
288
- '104,106,,,,,,,,,,,,,99,,,115,,,,109,108,,,95,96,98,97,100,101,111,93',
289
- '94,,,,,,92,,,,107,102,113,,116,,110,112,,103,105,104,106,,,,,,,,,,,',
290
- ',99,,,115,,,,109,108,,,95,96,98,97,100,101,111,93,94,,,,,,92,,,,107',
291
- '102,113,,116,111,110,112,,103,105,104,106,,,,,,,113,,116,,110,112,99',
292
- ',,115,,,,109,108,,,95,96,98,97,100,101,,93,94,115,,,,,92,,,95,96,98',
293
- '97,100,101,111,93,94,,,,,,92,,,,107,102,113,,116,,110,112,99,103,105',
294
- '104,106,,,,,,,,,,,,,99,,,115,,,,109,108,,,95,96,98,97,100,101,111,93',
295
- '94,,,,,,92,,,,107,102,113,,116,,110,112,,103,105,104,106,,,,,,,,,,,',
296
- ',99,,,115,,,,109,108,,111,95,96,98,97,100,101,,93,94,,,,102,113,92,116',
297
- ',110,112,,103,,,,,306,307,,,,,,,,,,,,,115,,,,99,,,,95,96,98,97,100,101',
298
- '111,93,94,,,316,,,92,,,,107,102,113,,116,,110,112,,103,105,104,106,',
299
- ',,,,,,,,,,,99,,,115,,,,109,108,,111,95,96,98,97,100,101,,93,94,,,107',
300
- '102,113,92,116,,110,112,,103,105,104,106,,,,,,,,,,,,,,,,115,,,,99,108',
301
- ',111,95,96,98,97,100,101,,93,94,,,107,102,113,92,116,111,110,112,,103',
302
- '105,104,106,,,,,,102,113,,116,,110,112,,103,,115,,,,99,,,,95,96,98,97',
303
- '100,101,,93,94,115,,,,,92,,111,95,96,98,97,100,101,,93,94,,,,102,113',
304
- '92,116,111,110,112,,103,,,,,,99,,,102,113,,116,,110,112,,103,,115,,',
305
- ',99,,,,95,96,98,97,100,101,,93,94,115,,,,,92,,,95,96,98,97,100,101,111',
306
- '93,94,,,,,,92,,,,107,102,113,310,116,,110,112,99,103,105,104,106,,,',
307
- ',,,,,,,,,99,,,115,,,,109,108,,,95,96,98,97,100,101,,93,94,,334,214,333',
308
- '215,92,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,99',
309
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219,334,214',
310
- '333,215,,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,',
311
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219,334,214',
312
- '333,215,,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,',
313
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219,334,214',
314
- '333,215,,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,',
315
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219,334,214',
316
- '333,215,,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,',
317
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219,334,214',
318
- '333,215,,331,217,335,,324,,330,332,,,,,,,218,213,336,,,,329,,,,,,,,',
319
- ',,,216,337,,,,,,,,,,,,340,341,339,338,325,326,327,328,342,219' ]
320
- racc_action_table = arr = ::Array.new(9676, nil)
33
+ '75,77,375,324,60,70,144,71,-271,114,-143,-269,280,165,459,462,376,144',
34
+ '390,-257,438,-266,438,116,20,119,322,113,115,145,51,439,54,281,66,12',
35
+ '386,58,43,46,145,53,44,10,11,325,166,61,19,118,-271,45,-143,-269,17',
36
+ '18,-142,98,99,101,100,-257,82,-266,96,97,75,77,52,393,167,95,42,78,394',
37
+ '80,81,79,395,-141,59,48,67,68,62,63,64,65,55,-184,-184,57,75,77,69,186',
38
+ '60,70,-142,71,102,114,-140,301,183,434,302,433,434,181,433,-179,-179',
39
+ '134,135,116,20,119,370,113,115,-141,51,359,54,303,66,137,401,58,43,46',
40
+ '280,53,44,-183,-183,316,317,61,19,118,94,45,-140,284,17,18,280,98,99',
41
+ '101,100,281,82,403,96,97,-182,-182,52,284,94,95,42,78,385,80,81,281',
42
+ '384,-138,59,48,67,68,62,63,64,65,55,-181,-181,57,75,77,69,86,60,70,251',
43
+ '71,102,114,134,135,305,304,-180,-180,-181,-181,-182,-182,-183,-183,410',
44
+ '116,20,119,126,113,115,-138,51,411,54,252,66,12,322,58,43,46,84,53,44',
45
+ '10,11,269,323,61,19,118,414,45,268,374,17,18,94,132,417,101,100,125',
46
+ '82,94,96,97,-178,-178,52,127,126,95,42,78,270,80,81,280,-184,-184,59',
47
+ '48,67,68,62,63,64,65,55,370,284,57,75,77,69,86,60,70,281,71,102,132',
48
+ '280,-178,-178,125,128,129,130,131,148,265,273,127,424,284,20,425,426',
49
+ '427,280,371,51,281,54,148,66,12,157,58,43,46,431,53,44,10,11,314,370',
50
+ '61,19,435,437,45,94,366,17,18,94,262,128,129,130,131,82,303,447,363',
51
+ '149,450,52,264,126,322,42,78,265,80,81,265,262,297,59,48,67,68,62,63',
52
+ '64,65,55,454,148,57,75,77,69,296,60,70,456,71,483,132,322,361,387,125',
53
+ '322,358,420,330,354,352,351,127,126,465,20,437,467,262,468,469,51,470',
54
+ '54,322,66,12,262,58,43,46,474,53,44,10,11,475,476,61,19,477,478,45,479',
55
+ '132,17,18,94,125,128,129,130,131,82,272,86,127,487,488,52,83,490,491',
56
+ '42,78,492,80,81,354,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70',
57
+ ',71,481,,128,129,130,131,,,,,,,,,126,,20,,,,126,,51,,54,,66,12,,58,43',
58
+ '46,,53,44,10,11,,,61,19,,,45,,132,17,18,,125,,132,,,82,125,,127,,,52',
59
+ ',,127,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70',
60
+ ',71,473,114,128,129,130,131,,,128,129,130,131,,,,116,20,119,126,113',
61
+ '115,122,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,118,,45,,,17,18',
62
+ ',132,,101,100,125,82,,96,97,,,52,127,126,95,42,78,,80,81,,,,59,48,67',
63
+ '68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,102,132,,,,125,128,129,130',
64
+ '131,,,,127,126,,20,,,,-256,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61',
65
+ '19,,,45,,132,17,18,,125,128,129,130,131,82,,,127,,,52,,-256,,42,78,',
66
+ '80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,114,128',
67
+ '129,130,131,,,,,,,,126,,116,20,119,126,113,115,,51,,54,,66,12,,58,43',
68
+ '46,,53,44,10,11,,,61,19,118,,45,132,,17,18,125,132,,,,125,82,,127,,',
69
+ ',52,127,,95,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69',
70
+ ',60,70,,71,,128,129,130,131,,128,129,130,131,,,,126,,,20,,,,,,51,,54',
71
+ ',66,137,,58,43,46,,53,44,,,,,61,19,,,45,132,,17,18,125,,,,,,82,,127',
72
+ ',,,52,87,88,89,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77',
73
+ '69,,60,70,,71,,128,129,130,131,,,,,75,77,,,167,,,20,,90,92,91,93,51',
74
+ ',54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,165,,,162,,,82,75',
75
+ '77,,,167,52,,,,42,78,,80,81,,,82,59,48,67,68,62,63,64,65,55,166,78,57',
76
+ '75,77,69,,60,70,,71,,114,165,,,162,,,,75,77,,,167,,116,20,119,,113,115',
77
+ ',51,,54,82,66,137,,58,43,46,,53,44,166,78,,,61,19,118,,45,,,17,18,165',
78
+ ',,162,,,82,75,77,,,167,52,,,95,42,78,,80,81,,,82,59,48,67,68,62,63,64',
79
+ '65,55,166,78,57,75,77,69,,60,70,,71,,114,165,,,162,,,,,,,,,,116,20,119',
80
+ ',113,115,,51,,54,82,66,137,,58,43,46,,53,44,166,78,,,61,19,118,,45,',
81
+ ',17,18,,,,,,,82,,96,97,,,52,,,95,42,78,,80,81,,,,59,48,67,68,62,63,64',
82
+ '65,55,,,57,75,77,69,114,60,70,,71,,114,,,,,,,,116,,119,,113,115,116',
83
+ '20,119,,113,115,,51,,54,,66,137,,58,43,46,,53,44,118,,,,61,19,118,,45',
84
+ ',,17,18,,,96,97,,,82,,,95,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63',
85
+ '64,65,55,,,57,75,77,69,,60,70,,71,,114,,,,,,,,,,,,,,116,20,119,,113',
86
+ '115,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,118,,45,,,17,18,,',
87
+ ',,,,82,,96,97,,,52,,,95,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,',
88
+ ',57,75,77,69,,60,70,,71,,114,,,,,,,,,,,,,,116,20,119,,113,115,,51,,54',
89
+ ',66,12,,58,43,46,,53,44,10,11,,,61,19,118,,45,,,17,18,,,,,,,82,,,,,',
90
+ '52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70',
91
+ ',71,,,,,,,,,,,,,,,,,20,143,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11',
92
+ ',,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68',
93
+ '62,63,64,65,55,,,57,75,77,69,,60,70,,71,,114,,,,,,,,,,,,,,116,20,119',
94
+ ',113,115,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,118,,45,,,17',
95
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
96
+ '57,75,77,69,114,60,70,,71,,,,,,,,,,116,,119,,113,115,,20,,,,,,51,,54',
97
+ ',66,137,,58,43,46,,53,44,118,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
98
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
99
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61',
100
+ '19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63',
101
+ '64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66',
102
+ '137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78',
103
+ ',80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,',
104
+ ',,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17',
105
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
106
+ '57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43',
107
+ '46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,',
108
+ ',59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,',
109
+ ',20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18,',
110
+ ',,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75',
111
+ '77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53',
112
+ '44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59',
113
+ '48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,440,,,,,,,,,,,,,,,',
114
+ '20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,',
115
+ ',82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77',
116
+ '69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44',
117
+ '10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48',
118
+ '67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,',
119
+ ',,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,',
120
+ ',,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60',
121
+ '70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61',
122
+ '19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63',
123
+ '64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66',
124
+ '137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78',
125
+ ',80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,',
126
+ ',,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17',
127
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
128
+ '57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43',
129
+ '46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,',
130
+ ',59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,',
131
+ ',20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,',
132
+ ',,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77',
133
+ '69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44',
134
+ ',,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67',
135
+ '68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51',
136
+ ',54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
137
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,170',
138
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61',
139
+ '19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63',
140
+ '64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,286,,,,,51,,54',
141
+ ',66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
142
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
143
+ '71,174,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,',
144
+ ',61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68',
145
+ '62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,',
146
+ '54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,',
147
+ '52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70',
148
+ ',71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61',
149
+ '19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63',
150
+ '64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66',
151
+ '12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42',
152
+ '78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,185,,',
153
+ ',,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45',
154
+ ',,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65',
155
+ '55,,,57,75,77,69,,60,70,,71,396,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12',
156
+ ',58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78',
157
+ ',80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,',
158
+ ',,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45',
159
+ ',,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65',
160
+ '55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,',
161
+ '58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
162
+ '81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,',
163
+ ',,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17',
164
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
165
+ '57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43',
166
+ '46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81',
167
+ ',,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,',
168
+ ',,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18',
169
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
170
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46',
171
+ ',53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,',
172
+ ',,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,',
173
+ ',,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18',
174
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
175
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46',
176
+ ',53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,',
177
+ ',,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,',
178
+ ',,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18',
179
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
180
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46',
181
+ ',53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,',
182
+ ',,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,',
183
+ ',,20,,,,,,203,221,213,222,66,215,224,216,43,201,,205,199,,,,,61,19,225',
184
+ '220,200,,,17,198,,,,,,,82,,,,,223,204,,,,42,78,,80,81,,,,217,202,218',
185
+ '219,208,209,210,211,214,226,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,',
186
+ '20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,',
187
+ ',82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77',
188
+ '69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44',
189
+ ',,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67',
190
+ '68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51',
191
+ ',54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
192
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
193
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19',
194
+ ',,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64',
195
+ '65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137',
196
+ ',58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
197
+ '81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,',
198
+ ',,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18',
199
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
200
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46',
201
+ ',53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59',
202
+ '48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20',
203
+ ',,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82',
204
+ ',,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69',
205
+ ',60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,',
206
+ ',,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68',
207
+ '62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,',
208
+ '54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
209
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
210
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19',
211
+ ',,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64',
212
+ '65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137',
213
+ ',58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
214
+ '81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,',
215
+ ',,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18',
216
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
217
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46',
218
+ ',53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59',
219
+ '48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20',
220
+ ',,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82',
221
+ ',,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69',
222
+ ',60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,',
223
+ ',,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68',
224
+ '62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,',
225
+ '54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
226
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
227
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19',
228
+ ',,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64',
229
+ '65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137',
230
+ ',58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,248,42,78',
231
+ ',80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,',
232
+ ',,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17',
233
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
234
+ '57,75,77,69,,60,70,,71,380,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58',
235
+ '43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
236
+ '81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,378,,,,,,',
237
+ ',,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,',
238
+ ',17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55',
239
+ ',,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58',
240
+ '43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81',
241
+ ',,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,',
242
+ ',,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,',
243
+ ',,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75',
244
+ '77,69,,60,70,,71,368,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46',
245
+ ',53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,',
246
+ ',,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,',
247
+ ',,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18',
248
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
249
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46',
250
+ ',53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59',
251
+ '48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20',
252
+ ',,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82',
253
+ ',,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69',
254
+ ',60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10',
255
+ '11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67',
256
+ '68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51',
257
+ ',54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52',
258
+ ',,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,',
259
+ '71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19',
260
+ ',,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64',
261
+ '65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137',
262
+ ',58,43,46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
263
+ '81,,,,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,,,,,,,,,,',
264
+ ',,,,,,20,,,,,,51,,54,,66,137,,58,43,46,,53,44,,,,,61,19,,,45,,,17,18',
265
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
266
+ '75,77,69,,60,70,,71,,,323,,,,,,,,,,,,,,20,,,,,,51,,54,,66,137,,58,43',
267
+ '46,,53,44,,,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,',
268
+ ',59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,174,,,,,,,,,,,',
269
+ ',,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17,18',
270
+ ',,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,,57',
271
+ '75,77,69,,60,70,,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58,43,46',
272
+ ',53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80,81,',
273
+ ',,59,48,67,68,62,63,64,65,55,,,57,75,77,69,,60,70,,71,294,,,,,,,,,,',
274
+ ',,,,,20,,,,,,51,,54,,66,12,,58,43,46,,53,44,10,11,,,61,19,,,45,,,17',
275
+ '18,,,,,,,82,,,,,,52,,,,42,78,,80,81,,,,59,48,67,68,62,63,64,65,55,,',
276
+ '57,75,77,69,,60,70,172,71,,,,,,,,,,,,,,,,,20,,,,,,51,,54,,66,12,,58',
277
+ '43,46,,53,44,10,11,,,61,19,,,45,,,17,18,,,,,,,82,,,,,,52,,,,42,78,,80',
278
+ '81,,,114,59,48,67,68,62,63,64,65,55,,,57,,116,69,119,,113,115,114,,',
279
+ ',,,,,,,,,110,105,116,,119,,113,115,118,106,108,107,109,,,,98,99,101',
280
+ '100,103,104,,96,97,,,,118,,95,,112,111,,,98,99,101,100,103,104,,96,97',
281
+ ',,,,114,95,287,,,,,,,,102,,110,105,116,,119,,113,115,,106,108,107,109',
282
+ ',,,,,102,,,,,,,,,,118,,,,112,111,,,98,99,101,100,103,104,,96,97,114',
283
+ ',288,,,95,,,,,,,110,105,116,,119,,113,115,,106,108,107,109,,,,,,,,,',
284
+ '102,,,,,,118,,,,112,111,,,98,99,101,100,103,104,,96,97,114,,289,,,95',
285
+ ',,,,,,110,105,116,,119,,113,115,,106,108,107,109,,,,,,,,,,102,,,,,,118',
286
+ ',,,112,111,,,98,99,101,100,103,104,114,96,97,,,,,,95,,,,110,105,116',
287
+ ',119,114,113,115,,106,108,107,109,,,,,,105,116,,119,,113,115,102,106',
288
+ ',118,,,,112,111,,,98,99,101,100,103,104,,96,97,118,,,,,95,,114,98,99',
289
+ '101,100,103,104,,96,97,,,110,105,116,95,119,,113,115,,106,108,107,109',
290
+ ',,102,,,,,,,,,,,,,118,,,,102,114,,,98,99,101,100,103,104,,96,97,110',
291
+ '105,116,,119,95,113,115,,106,108,107,109,,,,,,,,,,,,,,,,118,,,,112,111',
292
+ '102,,98,99,101,100,103,104,114,96,97,,,,,,95,,,,110,105,116,,119,,113',
293
+ '115,,106,108,107,109,,,,,,,,,,,,,102,,,118,,,,112,111,,,98,99,101,100',
294
+ '103,104,114,96,97,,,,,,95,,,,110,105,116,,119,,113,115,,106,108,107',
295
+ '109,,,,,,,,,,,,,102,,,118,,,,112,111,,,98,99,101,100,103,104,114,96',
296
+ '97,,,,,,95,,,,110,105,116,,119,,113,115,,106,108,107,109,,,,,,,,,,,',
297
+ ',102,,,118,,,,112,111,,,98,99,101,100,103,104,114,96,97,,,,,,95,,,,110',
298
+ '105,116,,119,,113,115,,106,108,107,109,,,,,,,,,,,,,102,,,118,,,,112',
299
+ '111,,,98,99,101,100,103,104,114,96,97,,,,,,95,,,,110,105,116,,119,,113',
300
+ '115,,106,108,107,109,,,,,,,,,,,,,102,,,118,,,,112,111,,,98,99,101,100',
301
+ '103,104,114,96,97,,,,,,95,,,,110,105,116,355,119,114,113,115,,106,108',
302
+ '107,109,,,,,,,116,,119,,113,115,102,,,118,,,,112,111,,,98,99,101,100',
303
+ '103,104,,96,97,118,,,,,95,,114,98,99,101,100,103,104,,96,97,,,,105,116',
304
+ '95,119,,113,115,,106,,,,,,102,,,,,,,,,,,,,118,,,,102,,,,98,99,101,100',
305
+ '103,104,114,96,97,,,326,,,95,,,,110,105,116,,119,,113,115,,106,108,107',
306
+ '109,,,,,,,,,,,,,102,,,118,,,,112,111,,,98,99,101,100,103,104,114,96',
307
+ '97,,,,,,95,,,,110,105,116,,119,,113,115,,106,108,107,109,,,,,,,,,,,',
308
+ ',102,,,118,,,,112,111,,114,98,99,101,100,103,104,,96,97,,,110,105,116',
309
+ '95,119,,113,115,,106,108,107,109,,,,,,,,,,,,,,,,118,,,,102,111,,,98',
310
+ '99,101,100,103,104,114,96,97,,,,,,95,,,,110,105,116,,119,114,113,115',
311
+ ',106,108,107,109,,,,,,105,116,,119,,113,115,102,106,,118,,,,112,111',
312
+ ',,98,99,101,100,103,104,,96,97,118,,,,,95,,114,98,99,101,100,103,104',
313
+ ',96,97,,,,105,116,95,119,,113,115,,106,,,,,,102,,,,,,,,,,,,,118,,,,102',
314
+ '114,,,98,99,101,100,103,104,,96,97,110,105,116,320,119,95,113,115,,106',
315
+ '108,107,109,,,,,,,,,,,,,,,,118,,,,112,111,102,,98,99,101,100,103,104',
316
+ '114,96,97,,,,,,95,,,,110,105,116,,119,,113,115,,106,108,107,109,,,,',
317
+ ',,,,,,,,102,,,118,,,,112,111,,,98,99,101,100,103,104,,96,97,,342,221',
318
+ '341,222,95,339,224,343,,332,,338,340,,,316,317,,,225,220,344,,,,337',
319
+ ',,,,,,,102,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
320
+ '226,342,221,341,222,,339,224,343,,332,,338,340,,,,,,,225,220,344,,,',
321
+ '337,,,,,,,,,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
322
+ '226,342,221,341,222,,339,224,343,,332,,338,340,,,,,,,225,220,344,,,',
323
+ '337,,,,,,,,,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
324
+ '226,342,221,341,222,,339,224,343,,332,,338,340,,,,,,,225,220,344,,,',
325
+ '337,,,,,,,,,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
326
+ '226,342,221,341,222,,339,224,343,,332,,338,340,,,,,,,225,220,344,,,',
327
+ '337,,,,,,,,,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
328
+ '226,342,221,341,222,,339,224,343,,332,,338,340,,,,,,,225,220,344,,,',
329
+ '337,,,,,,,,,,,,223,345,,,,,,,,,,,,348,346,349,347,333,334,335,336,350',
330
+ '226' ]
331
+ racc_action_table = arr = ::Array.new(9987, nil)
321
332
  idx = 0
322
333
  clist.each do |str|
323
334
  str.split(',', -1).each do |i|
@@ -327,151 +338,150 @@ clist = [
327
338
  end
328
339
 
329
340
  clist = [
330
- '0,0,401,193,0,0,274,0,212,224,203,192,271,286,416,166,204,152,166,416',
331
- '274,211,368,224,0,224,50,224,224,282,0,368,0,271,0,0,210,0,0,0,287,0',
332
- '0,0,0,193,286,0,0,224,212,0,203,192,0,0,194,50,204,224,224,50,0,211',
333
- '224,224,174,174,0,50,174,224,0,0,150,0,0,0,210,202,0,0,0,0,0,0,0,0,0',
334
- '203,203,0,462,462,0,289,462,462,194,462,224,223,200,365,290,365,50,50',
335
- '50,50,417,147,417,57,57,223,462,223,51,223,223,202,462,146,462,281,462',
336
- '462,303,462,462,462,308,462,462,194,194,171,171,462,462,223,309,462',
337
- '200,280,462,462,311,51,279,223,223,51,462,139,223,223,202,202,462,51',
338
- '137,223,462,462,160,462,462,56,56,201,462,462,462,462,462,462,462,462',
339
- '462,200,200,462,4,4,462,162,4,4,317,4,223,228,58,58,61,61,51,51,51,51',
340
- '52,52,389,389,319,228,4,228,164,228,228,201,4,321,4,323,4,4,329,4,4',
341
- '4,4,4,4,4,4,60,60,4,4,228,345,4,44,44,4,4,120,228,228,228,228,272,4',
342
- '348,228,228,201,201,4,118,134,228,4,4,352,4,4,140,16,16,4,4,4,4,4,4',
343
- '4,4,4,270,140,4,454,454,4,257,454,454,140,454,228,134,176,354,257,134',
344
- '356,357,59,59,269,117,140,134,130,176,454,257,114,113,357,364,454,176',
345
- '454,257,454,454,357,454,454,454,263,454,454,454,454,176,366,454,454',
346
- '367,258,454,82,130,454,454,80,130,134,134,134,134,454,76,255,130,375',
347
- '75,454,169,388,252,454,454,390,454,454,251,249,245,454,454,454,454,454',
348
- '454,454,454,454,244,397,454,453,453,454,243,453,453,53,453,453,284,130',
349
- '130,130,130,402,405,180,410,411,46,185,186,55,45,453,420,421,423,12',
350
- '187,453,12,453,425,453,453,428,453,453,453,431,453,453,453,453,432,188',
351
- '453,453,435,438,453,439,55,453,453,445,55,447,12,8,190,453,12,5,55,457',
352
- '458,453,1,465,12,453,453,467,453,453,469,474,,453,453,453,453,453,453',
353
- '453,453,453,,,453,451,451,453,,451,451,,451,451,229,55,55,55,55,,,12',
354
- '12,12,12,,,,229,451,229,,229,229,,451,,451,,451,451,,451,451,451,,451',
355
- '451,451,451,,,451,451,229,,451,,,451,451,,229,229,229,229,,451,,229',
356
- '229,,,451,,350,229,451,451,,451,451,,,,451,451,451,451,451,451,451,451',
357
- '451,,,451,197,197,451,,197,197,,197,229,350,,,,350,,,350,,,,,350,148',
358
- ',197,,,,,,197,,197,,197,197,,197,197,197,,197,197,,,,,197,197,,,197',
359
- ',148,197,197,,148,350,350,350,350,197,,,148,,,197,,,,197,197,,197,197',
360
- ',,,197,197,197,197,197,197,197,197,197,,,197,10,10,197,,10,10,,10,,221',
361
- '148,148,148,148,,,,,,,,209,,221,10,221,206,221,221,,10,,10,,10,10,,10',
362
- '10,10,,10,10,10,10,,,10,10,221,,10,209,,10,10,209,206,,,,206,10,,209',
363
- ',,,10,206,,221,10,10,,10,10,,,,10,10,10,10,10,10,10,10,10,,,10,11,11',
364
- '10,,11,11,,11,,209,209,209,209,,206,206,206,206,,,,207,,,11,,,207,205',
365
- ',11,,11,,11,11,,11,11,11,,11,11,11,11,,,11,11,,,11,207,,11,11,207,,',
366
- '205,,,11,205,207,,,,11,207,,205,11,11,,11,11,,,,11,11,11,11,11,11,11',
367
- '11,11,,,11,196,196,11,,196,196,,196,,207,207,207,207,,,,205,205,205',
368
- '205,,,,,196,,,,,,196,,196,,196,196,,196,196,196,,196,196,,,,,196,196',
369
- ',,196,,,196,196,7,7,7,,,,196,,,,,,196,,,,196,196,,196,196,,,,196,196',
370
- '196,196,196,196,196,196,196,,,196,433,433,196,,433,433,,433,433,222',
371
- ',,,7,7,7,7,285,285,,,285,,222,433,222,,222,222,,433,,433,,433,433,,433',
372
- '433,433,,433,433,433,433,,,433,433,222,,433,,,433,433,285,,,285,,,433',
373
- '208,208,,,208,433,,,222,433,433,,433,433,,,285,433,433,433,433,433,433',
374
- '433,433,433,285,285,433,17,17,433,,17,17,,17,,135,208,,,208,,,,377,377',
375
- ',,377,,135,17,135,,135,135,,17,,17,208,17,17,,17,17,17,,17,17,208,208',
376
- ',,17,17,135,,17,,,17,17,377,,,377,,,17,54,54,,,54,17,,,,17,17,,17,17',
377
- ',,377,17,17,17,17,17,17,17,17,17,377,377,17,18,18,17,,18,18,,18,,226',
378
- '54,,,54,,,,,,,,,,226,18,226,,226,226,,18,,18,54,18,18,,18,18,18,,18',
379
- '18,54,54,,,18,18,226,,18,,,18,18,,,,,,,18,,226,226,,,18,,,226,18,18',
380
- ',18,18,,,,18,18,18,18,18,18,18,18,18,,,18,19,19,18,225,19,19,,19,,133',
381
- ',,,,,,,225,,225,,225,225,133,19,133,,133,133,,19,,19,,19,19,,19,19,19',
382
- ',19,19,225,,,,19,19,133,,19,,,19,19,,,225,225,,,19,,,225,,,19,,,,19',
383
- '19,,19,19,,,,19,19,19,19,19,19,19,19,19,,,19,20,20,19,,20,20,,20,,227',
384
- ',,,,,,,,,,,,,227,20,227,,227,227,,20,,20,,20,20,,20,20,20,,20,20,20',
385
- '20,,,20,20,227,,20,,,20,20,,,,,,,20,,227,227,,,20,,,227,20,20,,20,20',
386
- ',,,20,20,20,20,20,20,20,20,20,,,20,424,424,20,220,424,424,,424,,136',
387
- ',,,,,,,220,,220,,220,220,136,424,136,,136,136,,424,,424,,424,424,,424',
388
- '424,424,,424,424,220,,,,424,424,136,,424,,,424,424,,,,,,,424,,,,,,424',
389
- ',,,424,424,,424,424,,,,424,424,424,424,424,424,424,424,424,,,424,419',
390
- '419,424,,419,419,,419,,,,,,,,,,,,,,,,,419,,,,,,419,,419,,419,419,,419',
391
- '419,419,,419,419,,,,,419,419,,,419,,,419,419,,,,,,,419,,,,,,419,,,,419',
392
- '419,,419,419,,,,419,419,419,419,419,419,419,419,419,,,419,195,195,419',
393
- ',195,195,,195,,,,,,,,,,,,,,,,,195,,,,,,195,,195,,195,195,,195,195,195',
394
- ',195,195,,,,,195,195,,,195,,,195,195,,,,,,,195,,,,,,195,,,,195,195,',
395
- '195,195,,,,195,195,195,195,195,195,195,195,195,,,195,47,47,195,,47,47',
396
- ',47,,,,,,,,,,,,,,,,,47,,,,,,47,,47,,47,47,,47,47,47,,47,47,,,,,47,47',
397
- ',,47,,,47,47,,,,,,,47,,,,,,47,,,,47,47,,47,47,,,,47,47,47,47,47,47,47',
398
- '47,47,,,47,48,48,47,,48,48,,48,,,,,,,,,,,,,,,,,48,,,,,,48,,48,,48,48',
399
- ',48,48,48,,48,48,,,,,48,48,,,48,,,48,48,,,,,,,48,,,,,,48,,,,48,48,,48',
400
- '48,,,,48,48,48,48,48,48,48,48,48,,,48,49,49,48,,49,49,,49,,,,,,,,,,',
401
- ',,,,,,49,,,,,,49,,49,,49,49,,49,49,49,,49,49,,,,,49,49,,,49,,,49,49',
402
- ',,,,,,49,,,,,,49,,,,49,49,,49,49,,,,49,49,49,49,49,49,49,49,49,,,49',
403
- '191,191,49,,191,191,,191,,,191,,,,,,,,,,,,,,191,,,,,,191,,191,,191,191',
404
- ',191,191,191,,191,191,,,,,191,191,,,191,,,191,191,,,,,,,191,,,,,,191',
405
- ',,,191,191,,191,191,,,,191,191,191,191,191,191,191,191,191,,,191,178',
406
- '178,191,,178,178,,178,178,,,,,,,,,,,,,,,,178,,,,,,178,,178,,178,178',
407
- ',178,178,178,,178,178,178,178,,,178,178,,,178,,,178,178,,,,,,,178,,',
408
- ',,,178,,,,178,178,,178,178,,,,178,178,178,178,178,178,178,178,178,,',
409
- '178,406,406,178,,406,406,,406,,,,,,,,,,,,,,,,,406,,,,,,406,,406,,406',
410
- '406,,406,406,406,,406,406,406,406,,,406,406,,,406,,,406,406,,,,,,,406',
411
- ',,,,,406,,,,406,406,,406,406,,,,406,406,406,406,406,406,406,406,406',
412
- ',,406,241,241,406,,241,241,,241,,,,,,,,,,,,,,,,,241,,,,,,241,,241,,241',
413
- '241,,241,241,241,,241,241,,,,,241,241,,,241,,,241,241,,,,,,,241,,,,',
414
- ',241,,,,241,241,,241,241,,,,241,241,241,241,241,241,241,241,241,,,241',
415
- '298,298,241,,298,298,,298,,,,,,,,,,,,,,,,,298,,,,,,298,,298,,298,298',
416
- ',298,298,298,,298,298,298,298,,,298,298,,,298,,,298,298,,,,,,,298,,',
417
- ',,,298,,,,298,298,,298,298,,,,298,298,298,298,298,298,298,298,298,,',
418
- '298,261,261,298,,261,261,,261,261,,,,,,,,,,,,,,,,261,,,,,,261,,261,',
419
- '261,261,,261,261,261,,261,261,261,261,,,261,261,,,261,,,261,261,,,,',
420
- ',,261,,,,,,261,,,,261,261,,261,261,,,,261,261,261,261,261,261,261,261',
421
- '261,,,261,398,398,261,,398,398,,398,,,,,,,,,,,,,,,,,398,,,,,,398,,398',
422
- ',398,398,,398,398,398,,398,398,,,,,398,398,,,398,,,398,398,,,,,,,398',
423
- ',,,,,398,,,,398,398,,398,398,,,,398,398,398,398,398,398,398,398,398',
424
- ',,398,276,276,398,,276,276,,276,276,,,,,,,,,,,,,,,,276,,,,,,276,,276',
425
- ',276,276,,276,276,276,,276,276,276,276,,,276,276,,,276,,,276,276,,,',
426
- ',,,276,,,,,,276,,,,276,276,,276,276,,,,276,276,276,276,276,276,276,276',
427
- '276,,,276,277,277,276,,277,277,,277,277,,,,,,,,,,,,,,,,277,,,,,,277',
428
- ',277,,277,277,,277,277,277,,277,277,277,277,,,277,277,,,277,,,277,277',
429
- ',,,,,,277,,,,,,277,,,,277,277,,277,277,,,,277,277,277,277,277,277,277',
430
- '277,277,,,277,278,278,277,,278,278,,278,,,,,,,,,,,,,,,,,278,,,,,,278',
431
- ',278,,278,278,,278,278,278,,278,278,,,,,278,278,,,278,,,278,278,,,,',
432
- ',,278,,,,,,278,,,,278,278,,278,278,,,,278,278,278,278,278,278,278,278',
433
- '278,,,278,288,288,278,,288,288,,288,,,,,,,,,,,,,,,,,288,,,,,,288,,288',
434
- ',288,288,,288,288,288,,288,288,288,288,,,288,288,,,288,,,288,288,,,',
435
- ',,,288,,,,,,288,,,,288,288,,288,288,,,,288,288,288,288,288,288,288,288',
436
- '288,,,288,380,380,288,,380,380,,380,,,,,,,,,,,,,,,,,380,,,,,,380,,380',
437
- ',380,380,,380,380,380,,380,380,380,380,,,380,380,,,380,,,380,380,,,',
438
- ',,,380,,,,,,380,,,,380,380,,380,380,,,,380,380,380,380,380,380,380,380',
439
- '380,,,380,66,66,380,,66,66,66,66,,,,,,,,,,,,,,,,,66,,,,,,66,,66,,66',
440
- '66,,66,66,66,,66,66,66,66,,,66,66,,,66,,,66,66,,,,,,,66,,,,,,66,,,,66',
441
- '66,,66,66,,,,66,66,66,66,66,66,66,66,66,,,66,67,67,66,,67,67,67,67,',
442
- ',,,,,,,,,,,,,,,67,,,,,,67,,67,,67,67,,67,67,67,,67,67,67,67,,,67,67',
443
- ',,67,,,67,67,,,,,,,67,,,,,,67,,,,67,67,,67,67,,,,67,67,67,67,67,67,67',
444
- '67,67,,,67,68,68,67,,68,68,,68,68,,,,,,,,,,,,,,,,68,,,,,,68,,68,,68',
445
- '68,,68,68,68,,68,68,68,68,,,68,68,,,68,,,68,68,,,,,,,68,,,,,,68,,,,68',
446
- '68,,68,68,,,,68,68,68,68,68,68,68,68,68,,,68,73,73,68,,73,73,,73,,,',
447
- ',,,,,,,,,,,,,73,,,,,,73,,73,,73,73,,73,73,73,,73,73,73,73,,,73,73,,',
448
- '73,,,73,73,,,,,,,73,,,,,,73,,,,73,73,,73,73,,,,73,73,73,73,73,73,73',
449
- '73,73,,,73,149,149,73,,149,149,,149,149,,,,,,,,,,,,,,,,149,,,,,,149',
450
- ',149,,149,149,,149,149,149,,149,149,149,149,,,149,149,,,149,,,149,149',
451
- ',,,,,,149,,,,,,149,,,,149,149,,149,149,,,,149,149,149,149,149,149,149',
452
- '149,149,,,149,372,372,149,,372,372,,372,,,,,,,,,,,,,,,,,372,,,,,,372',
453
- ',372,,372,372,,372,372,372,,372,372,372,372,,,372,372,,,372,,,372,372',
454
- ',,,,,,372,,,,,,372,,,,372,372,,372,372,,,,372,372,372,372,372,372,372',
455
- '372,372,,,372,78,78,372,,78,78,,78,,,,,,,,,,,,,,,,,78,,,,,,78,,78,,78',
456
- '78,,78,78,78,,78,78,,,,,78,78,,,78,,,78,78,,,,,,,78,,,,,,78,,,,78,78',
457
- ',78,78,,,,78,78,78,78,78,78,78,78,78,,,78,371,371,78,,371,371,,371,',
458
- ',,,,,,,,,,,,,,,371,,,,,,371,,371,,371,371,,371,371,371,,371,371,371',
459
- '371,,,371,371,,,371,,,371,371,,,,,,,371,,,,,,371,,,,371,371,,371,371',
460
- ',,,371,371,371,371,371,371,371,371,371,,,371,81,81,371,,81,81,,81,,',
461
- ',,,,,,,,,,,,,,81,,,,,,81,,81,,81,81,,81,81,81,,81,81,81,81,,,81,81,',
462
- ',81,,,81,81,,,,,,,81,,,,,,81,,,,81,81,,81,81,,,,81,81,81,81,81,81,81',
463
- '81,81,,,81,369,369,81,,369,369,,369,369,,,,,,,,,,,,,,,,369,,,,,,369',
464
- ',369,,369,369,,369,369,369,,369,369,,,,,369,369,,,369,,,369,369,,,,',
465
- ',,369,,,,,,369,,,,369,369,,369,369,,,,369,369,369,369,369,369,369,369',
466
- '369,,,369,83,83,369,,83,83,,83,,,,,,,,,,,,,,,,,83,,,,,,83,,83,,83,83',
467
- ',83,83,83,,83,83,83,83,,,83,83,,,83,,,83,83,,,,,,,83,,,,,,83,,,,83,83',
468
- ',83,83,,,,83,83,83,83,83,83,83,83,83,,,83,84,84,83,,84,84,,84,,,,,,',
469
- ',,,,,,,,,,84,,,,,,84,,84,,84,84,,84,84,84,,84,84,84,84,,,84,84,,,84',
470
- ',,84,84,,,,,,,84,,,,,,84,,,,84,84,,84,84,,,,84,84,84,84,84,84,84,84',
471
- '84,,,84,85,85,84,,85,85,,85,,,,,,,,,,,,,,,,,85,,,,,,85,,85,,85,85,,85',
472
- '85,85,,85,85,85,85,,,85,85,,,85,,,85,85,,,,,,,85,,,,,,85,,,,85,85,,85',
473
- '85,,,,85,85,85,85,85,85,85,85,85,,,85,86,86,85,,86,86,,86,,,,,,,,,,',
474
- ',,,,,,86,,,,,,86,,86,,86,86,,86,86,86,,86,86,86,86,,,86,86,,,86,,,86',
341
+ '0,0,285,212,0,0,48,0,218,236,211,219,282,297,421,430,285,202,295,199',
342
+ '430,200,381,236,0,236,197,236,236,48,0,381,0,282,0,0,292,0,0,0,202,0',
343
+ '0,0,0,212,297,0,0,236,218,0,211,219,0,0,210,236,236,236,236,199,0,200',
344
+ '236,236,181,181,0,298,181,236,0,0,299,0,0,0,300,209,0,0,0,0,0,0,0,0',
345
+ '0,211,211,0,476,476,0,83,476,476,210,476,236,235,208,173,79,431,173',
346
+ '431,378,78,378,60,60,56,56,235,476,235,313,235,235,209,476,262,476,318',
347
+ '476,476,319,476,476,476,262,476,476,210,210,401,401,476,476,235,195',
348
+ '476,208,262,476,476,370,235,235,235,235,262,476,321,235,235,209,209',
349
+ '476,370,194,235,476,476,291,476,476,370,290,201,476,476,476,476,476',
350
+ '476,476,476,476,208,208,476,4,4,476,85,4,4,116,4,235,231,16,16,178,178',
351
+ '61,61,62,62,63,63,64,64,327,231,4,231,133,231,231,201,4,329,4,117,4',
352
+ '4,331,4,4,4,4,4,4,4,4,145,337,4,4,231,353,4,145,283,4,4,193,133,356',
353
+ '231,231,133,4,192,231,231,201,201,4,133,217,231,4,4,145,4,4,148,65,65',
354
+ '4,4,4,4,4,4,4,4,4,360,148,4,468,468,4,187,468,468,148,468,231,217,183',
355
+ '46,46,217,133,133,133,133,363,142,148,217,365,183,468,366,367,369,281',
356
+ '280,468,183,468,143,468,468,57,468,468,468,377,468,468,468,468,183,274',
357
+ '468,468,379,380,468,120,270,468,468,121,123,217,217,217,217,468,176',
358
+ '388,266,50,400,468,140,358,402,468,468,171,468,468,169,168,160,468,468',
359
+ '468,468,468,468,468,468,468,409,49,468,467,467,468,158,467,467,413,467',
360
+ '467,358,416,263,293,358,422,260,358,250,257,256,254,358,59,434,467,435',
361
+ '437,155,439,442,467,445,467,446,467,467,154,467,467,467,449,467,467',
362
+ '467,467,452,453,467,467,458,460,467,461,59,467,467,8,59,358,358,358',
363
+ '358,467,147,5,59,471,472,467,1,480,482,467,467,484,467,467,489,,,467',
364
+ '467,467,467,467,467,467,467,467,,,467,465,465,467,,465,465,,465,465',
365
+ ',59,59,59,59,,,,,,,,,54,,465,,,,156,,465,,465,,465,465,,465,465,465',
366
+ ',465,465,465,465,,,465,465,,,465,,54,465,465,,54,,156,,,465,156,,54',
367
+ ',,465,,,156,465,465,,465,465,,,,465,465,465,465,465,465,465,465,465',
368
+ ',,465,447,447,465,,447,447,,447,447,230,54,54,54,54,,,156,156,156,156',
369
+ ',,,230,447,230,12,230,230,12,447,,447,,447,447,,447,447,447,,447,447',
370
+ '447,447,,,447,447,230,,447,,,447,447,,12,,230,230,12,447,,230,230,,',
371
+ '447,12,137,230,447,447,,447,447,,,,447,447,447,447,447,447,447,447,447',
372
+ ',,447,10,10,447,,10,10,,10,230,137,,,,137,12,12,12,12,,,,137,215,,10',
373
+ ',,,215,,10,,10,,10,10,,10,10,10,,10,10,10,10,,,10,10,,,10,,215,10,10',
374
+ ',215,137,137,137,137,10,,,215,,,10,,215,,10,10,,10,10,,,,10,10,10,10',
375
+ '10,10,10,10,10,,,10,11,11,10,,11,11,,11,,228,215,215,215,215,,,,,,,',
376
+ '214,,228,11,228,213,228,228,,11,,11,,11,11,,11,11,11,,11,11,11,11,,',
377
+ '11,11,228,,11,214,,11,11,214,213,,,,213,11,,214,,,,11,213,,228,11,11',
378
+ ',11,11,,,,11,11,11,11,11,11,11,11,11,,,11,438,438,11,,438,438,,438,',
379
+ '214,214,214,214,,213,213,213,213,,,,55,,,438,,,,,,438,,438,,438,438',
380
+ ',438,438,438,,438,438,,,,,438,438,,,438,55,,438,438,55,,,,,,438,,55',
381
+ ',,,438,7,7,7,438,438,,438,438,,,,438,438,438,438,438,438,438,438,438',
382
+ ',,438,433,433,438,,433,433,,433,,55,55,55,55,,,,,296,296,,,296,,,433',
383
+ ',7,7,7,7,433,,433,,433,433,,433,433,433,,433,433,,,,,433,433,,,433,',
384
+ ',433,433,296,,,296,,,433,390,390,,,390,433,,,,433,433,,433,433,,,296',
385
+ '433,433,433,433,433,433,433,433,433,296,296,433,17,17,433,,17,17,,17',
386
+ ',229,390,,,390,,,,58,58,,,58,,229,17,229,,229,229,,17,,17,390,17,17',
387
+ ',17,17,17,,17,17,390,390,,,17,17,229,,17,,,17,17,58,,,58,,,17,216,216',
388
+ ',,216,17,,,229,17,17,,17,17,,,58,17,17,17,17,17,17,17,17,17,58,58,17',
389
+ '18,18,17,,18,18,,18,,234,216,,,216,,,,,,,,,,234,18,234,,234,234,,18',
390
+ ',18,216,18,18,,18,18,18,,18,18,216,216,,,18,18,234,,18,,,18,18,,,,,',
391
+ ',18,,234,234,,,18,,,234,18,18,,18,18,,,,18,18,18,18,18,18,18,18,18,',
392
+ ',18,19,19,18,232,19,19,,19,,139,,,,,,,,232,,232,,232,232,139,19,139',
393
+ ',139,139,,19,,19,,19,19,,19,19,19,,19,19,232,,,,19,19,139,,19,,,19,19',
394
+ ',,232,232,,,19,,,232,,,19,,,,19,19,,19,19,,,,19,19,19,19,19,19,19,19',
395
+ '19,,,19,20,20,19,,20,20,,20,,233,,,,,,,,,,,,,,233,20,233,,233,233,,20',
396
+ ',20,,20,20,,20,20,20,,20,20,20,20,,,20,20,233,,20,,,20,20,,,,,,,20,',
397
+ '233,233,,,20,,,233,20,20,,20,20,,,,20,20,20,20,20,20,20,20,20,,,20,425',
398
+ '425,20,,425,425,,425,,136,,,,,,,,,,,,,,136,425,136,,136,136,,425,,425',
399
+ ',425,425,,425,425,425,,425,425,425,425,,,425,425,136,,425,,,425,425',
400
+ ',,,,,,425,,,,,,425,,,,425,425,,425,425,,,,425,425,425,425,425,425,425',
401
+ '425,425,,,425,47,47,425,,47,47,,47,,,,,,,,,,,,,,,,,47,47,,,,,47,,47',
402
+ ',47,47,,47,47,47,,47,47,47,47,,,47,47,,,47,,,47,47,,,,,,,47,,,,,,47',
403
+ ',,,47,47,,47,47,,,,47,47,47,47,47,47,47,47,47,,,47,417,417,47,,417,417',
404
+ ',417,,138,,,,,,,,,,,,,,138,417,138,,138,138,,417,,417,,417,417,,417',
405
+ '417,417,,417,417,417,417,,,417,417,138,,417,,,417,417,,,,,,,417,,,,',
406
+ ',417,,,,417,417,,417,417,,,,417,417,417,417,417,417,417,417,417,,,417',
407
+ '410,410,417,227,410,410,,410,,,,,,,,,,227,,227,,227,227,,410,,,,,,410',
408
+ ',410,,410,410,,410,410,410,,410,410,227,,,,410,410,,,410,,,410,410,',
409
+ ',,,,,410,,,,,,410,,,,410,410,,410,410,,,,410,410,410,410,410,410,410',
410
+ '410,410,,,410,393,393,410,,393,393,,393,,,,,,,,,,,,,,,,,393,,,,,,393',
411
+ ',393,,393,393,,393,393,393,,393,393,393,393,,,393,393,,,393,,,393,393',
412
+ ',,,,,,393,,,,,,393,,,,393,393,,393,393,,,,393,393,393,393,393,393,393',
413
+ '393,393,,,393,51,51,393,,51,51,,51,,,,,,,,,,,,,,,,,51,,,,,,51,,51,,51',
414
+ '51,,51,51,51,,51,51,,,,,51,51,,,51,,,51,51,,,,,,,51,,,,,,51,,,,51,51',
415
+ ',51,51,,,,51,51,51,51,51,51,51,51,51,,,51,52,52,51,,52,52,,52,,,,,,',
416
+ ',,,,,,,,,,52,,,,,,52,,52,,52,52,,52,52,52,,52,52,,,,,52,52,,,52,,,52',
417
+ '52,,,,,,,52,,,,,,52,,,,52,52,,52,52,,,,52,52,52,52,52,52,52,52,52,,',
418
+ '52,53,53,52,,53,53,,53,,,,,,,,,,,,,,,,,53,,,,,,53,,53,,53,53,,53,53',
419
+ '53,,53,53,,,,,53,53,,,53,,,53,53,,,,,,,53,,,,,,53,,,,53,53,,53,53,,',
420
+ ',53,53,53,53,53,53,53,53,53,,,53,385,385,53,,385,385,,385,,,,,,,,,,',
421
+ ',,,,,,385,,,,,,385,,385,,385,385,,385,385,385,,385,385,385,385,,,385',
422
+ '385,,,385,,,385,385,,,,,,,385,,,,,,385,,,,385,385,,385,385,,,,385,385',
423
+ '385,385,385,385,385,385,385,,,385,384,384,385,,384,384,,384,,,,,,,,',
424
+ ',,,,,,,,384,,,,,,384,,384,,384,384,,384,384,384,,384,384,384,384,,,384',
425
+ '384,,,384,,,384,384,,,,,,,384,,,,,,384,,,,384,384,,384,384,,,,384,384',
426
+ '384,384,384,384,384,384,384,,,384,382,382,384,,382,382,,382,382,,,,',
427
+ ',,,,,,,,,,,382,,,,,,382,,382,,382,382,,382,382,382,,382,382,,,,,382',
428
+ '382,,,382,,,382,382,,,,,,,382,,,,,,382,,,,382,382,,382,382,,,,382,382',
429
+ '382,382,382,382,382,382,382,,,382,375,375,382,,375,375,,375,,,,,,,,',
430
+ ',,,,,,,,375,,,,,,375,,375,,375,375,,375,375,375,,375,375,375,375,,,375',
431
+ '375,,,375,,,375,375,,,,,,,375,,,,,,375,,,,375,375,,375,375,,,,375,375',
432
+ '375,375,375,375,375,375,375,,,375,374,374,375,,374,374,,374,,,,,,,,',
433
+ ',,,,,,,,374,,,,,,374,,374,,374,374,,374,374,374,,374,374,,,,,374,374',
434
+ ',,374,,,374,374,,,,,,,374,,,,,,374,,,,374,374,,374,374,,,,374,374,374',
435
+ '374,374,374,374,374,374,,,374,371,371,374,,371,371,,371,,,,,,,,,,,,',
436
+ ',,,,371,,,,,,371,,371,,371,371,,371,371,371,,371,371,,,,,371,371,,,371',
437
+ ',,371,371,,,,,,,371,,,,,,371,,,,371,371,,371,371,,,,371,371,371,371',
438
+ '371,371,371,371,371,,,371,354,354,371,,354,354,,354,,,,,,,,,,,,,,,,',
439
+ '354,,,,,,354,,354,,354,354,,354,354,354,,354,354,,,,,354,354,,,354,',
440
+ ',354,354,,,,,,,354,,,,,,354,,,,354,354,,354,354,,,,354,354,354,354,354',
441
+ '354,354,354,354,,,354,330,330,354,,330,330,,330,,,,,,,,,,,,,,,,,330',
442
+ ',,,,,330,,330,,330,330,,330,330,330,,330,330,,,,,330,330,,,330,,,330',
443
+ '330,,,,,,,330,,,,,,330,,,,330,330,,330,330,,,,330,330,330,330,330,330',
444
+ '330,330,330,,,330,326,326,330,,326,326,,326,,,,,,,,,,,,,,,,,326,,,,',
445
+ ',326,,326,,326,326,,326,326,326,,326,326,,,,,326,326,,,326,,,326,326',
446
+ ',,,,,,326,,,,,,326,,,,326,326,,326,326,,,,326,326,326,326,326,326,326',
447
+ '326,326,,,326,325,325,326,,325,325,,325,,,,,,,,,,,,,,,,,325,,,,,,325',
448
+ ',325,,325,325,,325,325,325,,325,325,,,,,325,325,,,325,,,325,325,,,,',
449
+ ',,325,,,,,,325,,,,325,325,,325,325,,,,325,325,325,325,325,325,325,325',
450
+ '325,,,325,324,324,325,,324,324,,324,,,,,,,,,,,,,,,,,324,,,,,,324,,324',
451
+ ',324,324,,324,324,324,,324,324,,,,,324,324,,,324,,,324,324,,,,,,,324',
452
+ ',,,,,324,,,,324,324,,324,324,,,,324,324,324,324,324,324,324,324,324',
453
+ ',,324,323,323,324,,323,323,,323,,,,,,,,,,,,,,,,,323,,,,,,323,,323,,323',
454
+ '323,,323,323,323,,323,323,,,,,323,323,,,323,,,323,323,,,,,,,323,,,,',
455
+ ',323,,,,323,323,,323,323,,,,323,323,323,323,323,323,323,323,323,,,323',
456
+ '69,69,323,,69,69,69,69,,,,,,,,,,,,,,,,,69,,,,,,69,,69,,69,69,,69,69',
457
+ '69,,69,69,69,69,,,69,69,,,69,,,69,69,,,,,,,69,,,,,,69,,,,69,69,,69,69',
458
+ ',,,69,69,69,69,69,69,69,69,69,,,69,149,149,69,,149,149,,149,,,,,,,,',
459
+ ',,,,,,,,149,149,,,,,149,,149,,149,149,,149,149,149,,149,149,149,149',
460
+ ',,149,149,,,149,,,149,149,,,,,,,149,,,,,,149,,,,149,149,,149,149,,,',
461
+ '149,149,149,149,149,149,149,149,149,,,149,71,71,149,,71,71,,71,71,,',
462
+ ',,,,,,,,,,,,,71,,,,,,71,,71,,71,71,,71,71,71,,71,71,71,71,,,71,71,,',
463
+ '71,,,71,71,,,,,,,71,,,,,,71,,,,71,71,,71,71,,,,71,71,71,71,71,71,71',
464
+ '71,71,,,71,76,76,71,,76,76,,76,,,,,,,,,,,,,,,,,76,,,,,,76,,76,,76,76',
465
+ ',76,76,76,,76,76,76,76,,,76,76,,,76,,,76,76,,,,,,,76,,,,,,76,,,,76,76',
466
+ ',76,76,,,,76,76,76,76,76,76,76,76,76,,,76,308,308,76,,308,308,,308,',
467
+ ',,,,,,,,,,,,,,,308,,,,,,308,,308,,308,308,,308,308,308,,308,308,308',
468
+ '308,,,308,308,,,308,,,308,308,,,,,,,308,,,,,,308,,,,308,308,,308,308',
469
+ ',,,308,308,308,308,308,308,308,308,308,,,308,303,303,308,,303,303,,303',
470
+ ',,,,,,,,,,,,,,,,303,,,,,,303,,303,,303,303,,303,303,303,,303,303,303',
471
+ '303,,,303,303,,,303,,,303,303,,,,,,,303,,,,,,303,,,,303,303,,303,303',
472
+ ',,,303,303,303,303,303,303,303,303,303,,,303,81,81,303,,81,81,,81,,',
473
+ ',,,,,,,,,,,,,,81,,,,,,81,,81,,81,81,,81,81,81,,81,81,,,,,81,81,,,81',
474
+ ',,81,81,,,,,,,81,,,,,,81,,,,81,81,,81,81,,,,81,81,81,81,81,81,81,81',
475
+ '81,,,81,302,302,81,,302,302,,302,302,,,,,,,,,,,,,,,,302,,,,,,302,,302',
476
+ ',302,302,,302,302,302,,302,302,302,302,,,302,302,,,302,,,302,302,,,',
477
+ ',,,302,,,,,,302,,,,302,302,,302,302,,,,302,302,302,302,302,302,302,302',
478
+ '302,,,302,84,84,302,,84,84,,84,,,,,,,,,,,,,,,,,84,,,,,,84,,84,,84,84',
479
+ ',84,84,84,,84,84,84,84,,,84,84,,,84,,,84,84,,,,,,,84,,,,,,84,,,,84,84',
480
+ ',84,84,,,,84,84,84,84,84,84,84,84,84,,,84,289,289,84,,289,289,,289,',
481
+ ',,,,,,,,,,,,,,,289,,,,,,289,,289,,289,289,,289,289,289,,289,289,,,,',
482
+ '289,289,,,289,,,289,289,,,,,,,289,,,,,,289,,,,289,289,,289,289,,,,289',
483
+ '289,289,289,289,289,289,289,289,,,289,86,86,289,,86,86,,86,,,,,,,,,',
484
+ ',,,,,,,86,,,,,,86,,86,,86,86,,86,86,86,,86,86,86,86,,,86,86,,,86,,,86',
475
485
  '86,,,,,,,86,,,,,,86,,,,86,86,,86,86,,,,86,86,86,86,86,86,86,86,86,,',
476
486
  '86,87,87,86,,87,87,,87,,,,,,,,,,,,,,,,,87,,,,,,87,,87,,87,87,,87,87',
477
487
  '87,,87,87,87,87,,,87,87,,,87,,,87,87,,,,,,,87,,,,,,87,,,,87,87,,87,87',
@@ -483,166 +493,180 @@ clist = [
483
493
  ',,89,89,89,89,89,89,89,89,89,,,89,90,90,89,,90,90,,90,,,,,,,,,,,,,,',
484
494
  ',,90,,,,,,90,,90,,90,90,,90,90,90,,90,90,90,90,,,90,90,,,90,,,90,90',
485
495
  ',,,,,,90,,,,,,90,,,,90,90,,90,90,,,,90,90,90,90,90,90,90,90,90,,,90',
486
- '91,91,90,,91,91,,91,,,,,,,,,,,,,,,,,91,,,,,,91,91,91,91,91,91,91,91',
487
- '91,91,,91,91,,,,,91,91,91,91,91,,,91,91,,,,,,,91,,,,,91,91,,,,91,91',
488
- ',91,91,,,,91,91,91,91,91,91,91,91,91,91,,91,92,92,91,,92,92,,92,,,,',
489
- ',,,,,,,,,,,,92,,,,,,92,,92,,92,92,,92,92,92,,92,92,,,,,92,92,,,92,,',
490
- '92,92,,,,,,,92,,,,,,92,,,,92,92,,92,92,,,,92,92,92,92,92,92,92,92,92',
491
- ',,92,93,93,92,,93,93,,93,,,,,,,,,,,,,,,,,93,,,,,,93,,93,,93,93,,93,93',
492
- '93,,93,93,,,,,93,93,,,93,,,93,93,,,,,,,93,,,,,,93,,,,93,93,,93,93,,',
493
- ',93,93,93,93,93,93,93,93,93,,,93,94,94,93,,94,94,,94,,,,,,,,,,,,,,,',
494
- ',94,,,,,,94,,94,,94,94,,94,94,94,,94,94,,,,,94,94,,,94,,,94,94,,,,,',
495
- ',94,,,,,,94,,,,94,94,,94,94,,,,94,94,94,94,94,94,94,94,94,,,94,95,95',
496
- '94,,95,95,,95,,,,,,,,,,,,,,,,,95,,,,,,95,,95,,95,95,,95,95,95,,95,95',
497
- ',,,,95,95,,,95,,,95,95,,,,,,,95,,,,,,95,,,,95,95,,95,95,,,,95,95,95',
498
- '95,95,95,95,95,95,,,95,96,96,95,,96,96,,96,,,,,,,,,,,,,,,,,96,,,,,,96',
499
- ',96,,96,96,,96,96,96,,96,96,,,,,96,96,,,96,,,96,96,,,,,,,96,,,,,,96',
500
- ',,,96,96,,96,96,,,,96,96,96,96,96,96,96,96,96,,,96,97,97,96,,97,97,',
501
- '97,,,,,,,,,,,,,,,,,97,,,,,,97,,97,,97,97,,97,97,97,,97,97,,,,,97,97',
502
- ',,97,,,97,97,,,,,,,97,,,,,,97,,,,97,97,,97,97,,,,97,97,97,97,97,97,97',
503
- '97,97,,,97,98,98,97,,98,98,,98,,,,,,,,,,,,,,,,,98,,,,,,98,,98,,98,98',
504
- ',98,98,98,,98,98,,,,,98,98,,,98,,,98,98,,,,,,,98,,,,,,98,,,,98,98,,98',
505
- '98,,,,98,98,98,98,98,98,98,98,98,,,98,99,99,98,,99,99,,99,,,,,,,,,,',
506
- ',,,,,,99,,,,,,99,,99,,99,99,,99,99,99,,99,99,,,,,99,99,,,99,,,99,99',
507
- ',,,,,,99,,,,,,99,,,,99,99,,99,99,,,,99,99,99,99,99,99,99,99,99,,,99',
508
- '100,100,99,,100,100,,100,,,,,,,,,,,,,,,,,100,,,,,,100,,100,,100,100',
509
- ',100,100,100,,100,100,,,,,100,100,,,100,,,100,100,,,,,,,100,,,,,,100',
510
- ',,,100,100,,100,100,,,,100,100,100,100,100,100,100,100,100,,,100,101',
511
- '101,100,,101,101,,101,,,,,,,,,,,,,,,,,101,,,,,,101,,101,,101,101,,101',
512
- '101,101,,101,101,,,,,101,101,,,101,,,101,101,,,,,,,101,,,,,,101,,,,101',
513
- '101,,101,101,,,,101,101,101,101,101,101,101,101,101,,,101,102,102,101',
514
- ',102,102,,102,,,,,,,,,,,,,,,,,102,,,,,,102,,102,,102,102,,102,102,102',
515
- ',102,102,,,,,102,102,,,102,,,102,102,,,,,,,102,,,,,,102,,,,102,102,',
516
- '102,102,,,,102,102,102,102,102,102,102,102,102,,,102,103,103,102,,103',
517
- '103,,103,,,,,,,,,,,,,,,,,103,,,,,,103,,103,,103,103,,103,103,103,,103',
518
- '103,,,,,103,103,,,103,,,103,103,,,,,,,103,,,,,,103,,,,103,103,,103,103',
519
- ',,,103,103,103,103,103,103,103,103,103,,,103,104,104,103,,104,104,,104',
520
- ',,,,,,,,,,,,,,,,104,,,,,,104,,104,,104,104,,104,104,104,,104,104,,,',
521
- ',104,104,,,104,,,104,104,,,,,,,104,,,,,,104,,,,104,104,,104,104,,,,104',
522
- '104,104,104,104,104,104,104,104,,,104,105,105,104,,105,105,,105,,,,',
523
- ',,,,,,,,,,,,105,,,,,,105,,105,,105,105,,105,105,105,,105,105,,,,,105',
524
- '105,,,105,,,105,105,,,,,,,105,,,,,,105,,,,105,105,,105,105,,,,105,105',
525
- '105,105,105,105,105,105,105,,,105,106,106,105,,106,106,,106,,,,,,,,',
526
- ',,,,,,,,106,,,,,,106,,106,,106,106,,106,106,106,,106,106,,,,,106,106',
527
- ',,106,,,106,106,,,,,,,106,,,,,,106,,,,106,106,,106,106,,,,106,106,106',
528
- '106,106,106,106,106,106,,,106,107,107,106,,107,107,,107,,,,,,,,,,,,',
529
- ',,,,107,,,,,,107,,107,,107,107,,107,107,107,,107,107,,,,,107,107,,,107',
530
- ',,107,107,,,,,,,107,,,,,,107,,,,107,107,,107,107,,,,107,107,107,107',
531
- '107,107,107,107,107,,,107,108,108,107,,108,108,,108,,,,,,,,,,,,,,,,',
532
- '108,,,,,,108,,108,,108,108,,108,108,108,,108,108,,,,,108,108,,,108,',
533
- ',108,108,,,,,,,108,,,,,,108,,,,108,108,,108,108,,,,108,108,108,108,108',
534
- '108,108,108,108,,,108,109,109,108,,109,109,,109,,,,,,,,,,,,,,,,,109',
535
- ',,,,,109,,109,,109,109,,109,109,109,,109,109,,,,,109,109,,,109,,,109',
536
- '109,,,,,,,109,,,,,,109,,,,109,109,,109,109,,,,109,109,109,109,109,109',
537
- '109,109,109,,,109,110,110,109,,110,110,,110,,,,,,,,,,,,,,,,,110,,,,',
538
- ',110,,110,,110,110,,110,110,110,,110,110,,,,,110,110,,,110,,,110,110',
539
- ',,,,,,110,,,,,,110,,,110,110,110,,110,110,,,,110,110,110,110,110,110',
540
- '110,110,110,,,110,111,111,110,,111,111,,111,,,,,,,,,,,,,,,,,111,,,,',
541
- ',111,,111,,111,111,,111,111,111,,111,111,,,,,111,111,,,111,,,111,111',
542
- ',,,,,,111,,,,,,111,,,,111,111,,111,111,,,,111,111,111,111,111,111,111',
543
- '111,111,,,111,112,112,111,,112,112,,112,,,,,,,,,,,,,,,,,112,112,,,,',
544
- '112,,112,,112,112,,112,112,112,,112,112,112,112,,,112,112,,,112,,,112',
545
- '112,,,,,,,112,,,,,,112,,,,112,112,,112,112,,,,112,112,112,112,112,112',
546
- '112,112,112,,,112,362,362,112,,362,362,,362,,,,,,,,,,,,,,,,,362,,,,',
547
- ',362,,362,,362,362,,362,362,362,,362,362,362,362,,,362,362,,,362,,,362',
548
- '362,,,,,,,362,,,,,,362,,,,362,362,,362,362,,,,362,362,362,362,362,362',
549
- '362,362,362,,,362,361,361,362,,361,361,,361,,,,,,,,,,,,,,,,,361,,,,',
550
- ',361,,361,,361,361,,361,361,361,,361,361,,,,,361,361,,,361,,,361,361',
551
- ',,,,,,361,,,,,,361,,,,361,361,,361,361,,,,361,361,361,361,361,361,361',
552
- '361,361,,,361,115,115,361,,115,115,,115,,,,,,,,,,,,,,,,,115,,,,,,115',
553
- ',115,,115,115,,115,115,115,,115,115,,,,,115,115,,,115,,,115,115,,,,',
554
- ',,115,,,,,,115,,,,115,115,,115,115,,,,115,115,115,115,115,115,115,115',
555
- '115,,,115,116,116,115,,116,116,,116,,,,,,,,,,,,,,,,,116,,,,,,116,,116',
556
- ',116,116,,116,116,116,,116,116,,,,,116,116,,,116,,,116,116,,,,,,,116',
557
- ',,,,,116,,,,116,116,,116,116,,,,116,116,116,116,116,116,116,116,116',
558
- ',,116,358,358,116,,358,358,,358,,,,,,,,,,,,,,,,,358,,,,,,358,,358,,358',
559
- '358,,358,358,358,,358,358,,,,,358,358,,,358,,,358,358,,,,,,,358,,,,',
560
- ',358,,,,358,358,,358,358,,,,358,358,358,358,358,358,358,358,358,,,358',
561
- '292,292,358,,292,292,,292,292,,,,,,,,,,,,,,,,292,,,,,,292,,292,,292',
562
- '292,,292,292,292,,292,292,292,292,,,292,292,,,292,,,292,292,,,,,,,292',
563
- ',,,,,292,,,,292,292,,292,292,,,,292,292,292,292,292,292,292,292,292',
564
- ',,292,119,119,292,,119,119,,119,,,,,,,,,,,,,,,,,119,,,,,,119,,119,,119',
565
- '119,,119,119,119,,119,119,,,,,119,119,,,119,,,119,119,,,,,,,119,,,,',
566
- ',119,,,,119,119,,119,119,,,,119,119,119,119,119,119,119,119,119,,,119',
567
- '346,346,119,,346,346,,346,,,,,,,,,,,,,,,,,346,,,,,,346,,346,,346,346',
568
- ',346,346,346,,346,346,,,,,346,346,,,346,,,346,346,,,,,,,346,,,,,,346',
569
- ',,,346,346,,346,346,,,,346,346,346,346,346,346,346,346,346,,,346,293',
570
- '293,346,,293,293,,293,,,,,,,,,,,,,,,,,293,,,,,,293,,293,,293,293,,293',
571
- '293,293,,293,293,293,293,,,293,293,,,293,,,293,293,,,,,,,293,,,,,,293',
572
- ',,,293,293,,293,293,,,,293,293,293,293,293,293,293,293,293,,,293,320',
573
- '320,293,,320,320,,320,,,,,,,,,,,,,,,,,320,,,,,,320,,320,,320,320,,320',
574
- '320,320,,320,320,,,,,320,320,,,320,,,320,320,,,,,,,320,,,,,,320,,,,320',
575
- '320,,320,320,,,,320,320,320,320,320,320,320,320,320,,,320,141,141,320',
576
- ',141,141,,141,,,,,,,,,,,,,,,,,141,141,,,,,141,,141,,141,141,,141,141',
577
- '141,,141,141,141,141,,,141,141,,,141,,,141,141,,,,,,,141,,,,,,141,,',
578
- ',141,141,,141,141,,,,141,141,141,141,141,141,141,141,141,,,141,316,316',
579
- '141,,316,316,,316,,,,,,,,,,,,,,,,,316,,,,,,316,,316,,316,316,,316,316',
580
- '316,,316,316,,,,,316,316,,,316,,,316,316,,,,,,,316,,,,,,316,,,,316,316',
581
- ',316,316,,,,316,316,316,316,316,316,316,316,316,,,316,315,315,316,,315',
582
- '315,,315,,,,,,,,,,,,,,,,,315,,,,,,315,,315,,315,315,,315,315,315,,315',
583
- '315,,,,,315,315,,,315,,,315,315,,,,,,,315,,,,,,315,,,,315,315,,315,315',
584
- ',,,315,315,315,315,315,315,315,315,315,,,315,314,314,315,,314,314,,314',
585
- ',,,,,,,,,,,,,,,,314,,,,,,314,,314,,314,314,,314,314,314,,314,314,,,',
586
- ',314,314,,,314,,,314,314,,,,,,,314,,,,,,314,,,,314,314,,314,314,,,,314',
587
- '314,314,314,314,314,314,314,314,,,314,313,313,314,,313,313,,313,,,,',
588
- ',,,,,,,,,,,,313,,,,,,313,,313,,313,313,,313,313,313,,313,313,,,,,313',
589
- '313,,,313,,,313,313,,,,,,,313,,,,,,313,,,,313,313,,313,313,,,,313,313',
590
- '313,313,313,313,313,313,313,,,313,175,175,313,,175,175,,175,,,,,,,,',
591
- ',,,,,,,,175,,,,,,175,,175,,175,175,,175,175,175,,175,175,175,175,,,175',
592
- '175,,,175,,,175,175,,,,,,,175,,,,,,175,,,,175,175,,175,175,,,,175,175',
593
- '175,175,175,175,175,175,175,,142,175,142,,175,,,,,,,,142,142,142,,142',
594
- ',142,142,,142,142,142,142,,,,,,,,,,,,,,,,142,,,,142,142,,,142,142,142',
595
- '142,142,142,,142,142,144,,144,,,142,,,,,,,144,144,144,,144,,144,144',
596
- ',144,144,144,144,,,,,,,,,,142,,,,,,144,,,,144,144,,,144,144,144,144',
597
- '144,144,,144,144,145,,145,,,144,,,,,,,145,145,145,,145,230,145,145,',
598
- '145,145,145,145,,,,,,,230,,230,144,230,230,,,,145,,,,145,145,,,145,145',
599
- '145,145,145,145,,145,145,230,,,,,145,,,230,230,230,230,230,230,393,230',
600
- '230,,,,,,230,,,,393,393,393,,393,,393,393,145,393,393,393,393,,,,,,',
601
- ',,,,,,230,,,393,,,,393,393,,,393,393,393,393,393,393,9,393,393,,,,,',
602
- '393,,,,9,9,9,,9,,9,9,,9,9,9,9,,,,,,,,,,,,,393,,,9,,,,9,9,,,9,9,9,9,9',
603
- '9,394,9,9,,,,,,9,,,,394,394,394,,394,,394,394,,394,394,394,394,,,,,',
604
- ',,,,,,,9,,,394,,,,394,394,,,394,394,394,394,394,394,395,394,394,,,,',
605
- ',394,,,,395,395,395,,395,,395,395,,395,395,395,395,,,,,,,,,,,,,394,',
606
- ',395,,,,395,395,,,395,395,395,395,395,395,396,395,395,,,,,,395,,,,396',
607
- '396,396,,396,,396,396,,396,396,396,396,,,,,,,,,,,,,395,,,396,,,,396',
608
- '396,,,396,396,396,396,396,396,415,396,396,,,,,,396,,,,415,415,415,,415',
609
- ',415,415,,415,415,415,415,,,,,,,,,,,,,396,,,415,,,,415,415,,,415,415',
610
- '415,415,415,415,253,415,415,,,,,,415,,,,253,253,253,253,253,,253,253',
611
- ',253,253,253,253,,,,,,,,,,,,,415,,,253,,,,253,253,,,253,253,253,253',
612
- '253,253,248,253,253,,,,,,253,,,,248,248,248,,248,,248,248,,248,248,248',
613
- '248,,,,,,,,,,,,,253,,,248,,,,248,248,,,248,248,248,248,248,248,242,248',
614
- '248,,,,,,248,,,,242,242,242,,242,231,242,242,,242,242,242,242,,,,,,',
615
- '231,,231,,231,231,248,,,242,,,,242,242,,,242,242,242,242,242,242,,242',
616
- '242,231,,,,,242,,,231,231,231,231,231,231,400,231,231,,,,,,231,,,,400',
617
- '400,400,,400,,400,400,242,400,400,400,400,,,,,,,,,,,,,231,,,400,,,,400',
618
- '400,,,400,400,400,400,400,400,177,400,400,,,,,,400,,,,177,177,177,,177',
619
- ',177,177,,177,177,177,177,,,,,,,,,,,,,400,,,177,,,,177,177,,232,177',
620
- '177,177,177,177,177,,177,177,,,,232,232,177,232,,232,232,,232,,,,,177',
621
- '177,,,,,,,,,,,,,232,,,,177,,,,232,232,232,232,232,232,238,232,232,,',
622
- '238,,,232,,,,238,238,238,,238,,238,238,,238,238,238,238,,,,,,,,,,,,',
623
- '232,,,238,,,,238,238,,237,238,238,238,238,238,238,,238,238,,,237,237',
624
- '237,238,237,,237,237,,237,237,237,237,,,,,,,,,,,,,,,,237,,,,238,237',
625
- ',236,237,237,237,237,237,237,,237,237,,,236,236,236,237,236,235,236',
626
- '236,,236,236,236,236,,,,,,235,235,,235,,235,235,,235,,236,,,,237,,,',
627
- '236,236,236,236,236,236,,236,236,235,,,,,236,,234,235,235,235,235,235',
628
- '235,,235,235,,,,234,234,235,234,233,234,234,,234,,,,,,236,,,233,233',
629
- ',233,,233,233,,233,,234,,,,235,,,,234,234,234,234,234,234,,234,234,233',
630
- ',,,,234,,,233,233,233,233,233,233,189,233,233,,,,,,233,,,,189,189,189',
631
- '189,189,,189,189,234,189,189,189,189,,,,,,,,,,,,,233,,,189,,,,189,189',
632
- ',,189,189,189,189,189,189,,189,189,,247,247,247,247,189,247,247,247',
633
- ',247,,247,247,,,,,,,247,247,247,,,,247,,,,,,,,189,,,,247,247,,,,,,,',
634
- ',,,,247,247,247,247,247,247,247,247,247,247,373,373,373,373,,373,373',
635
- '373,,373,,373,373,,,,,,,373,373,373,,,,373,,,,,,,,,,,,373,373,,,,,,',
636
- ',,,,,373,373,373,373,373,373,373,373,373,373,353,353,353,353,,353,353',
637
- '353,,353,,353,353,,,,,,,353,353,353,,,,353,,,,,,,,,,,,353,353,,,,,,',
638
- ',,,,,353,353,353,353,353,353,353,353,353,353,347,347,347,347,,347,347',
639
- '347,,347,,347,347,,,,,,,347,347,347,,,,347,,,,,,,,,,,,347,347,,,,,,',
640
- ',,,,,347,347,347,347,347,347,347,347,347,347,312,312,312,312,,312,312',
641
- '312,,312,,312,312,,,,,,,312,312,312,,,,312,,,,,,,,,,,,312,312,,,,,,',
642
- ',,,,,312,312,312,312,312,312,312,312,312,312,310,310,310,310,,310,310',
643
- '310,,310,,310,310,,,,,,,310,310,310,,,,310,,,,,,,,,,,,310,310,,,,,,',
644
- ',,,,,310,310,310,310,310,310,310,310,310,310' ]
645
- racc_action_check = arr = ::Array.new(9676, nil)
496
+ '91,91,90,,91,91,,91,,,,,,,,,,,,,,,,,91,,,,,,91,,91,,91,91,,91,91,91',
497
+ ',91,91,91,91,,,91,91,,,91,,,91,91,,,,,,,91,,,,,,91,,,,91,91,,91,91,',
498
+ ',,91,91,91,91,91,91,91,91,91,,,91,92,92,91,,92,92,,92,,,,,,,,,,,,,,',
499
+ ',,92,,,,,,92,,92,,92,92,,92,92,92,,92,92,92,92,,,92,92,,,92,,,92,92',
500
+ ',,,,,,92,,,,,,92,,,,92,92,,92,92,,,,92,92,92,92,92,92,92,92,92,,,92',
501
+ '93,93,92,,93,93,,93,,,,,,,,,,,,,,,,,93,,,,,,93,,93,,93,93,,93,93,93',
502
+ ',93,93,93,93,,,93,93,,,93,,,93,93,,,,,,,93,,,,,,93,,,,93,93,,93,93,',
503
+ ',,93,93,93,93,93,93,93,93,93,,,93,94,94,93,,94,94,,94,,,,,,,,,,,,,,',
504
+ ',,94,,,,,,94,94,94,94,94,94,94,94,94,94,,94,94,,,,,94,94,94,94,94,,',
505
+ '94,94,,,,,,,94,,,,,94,94,,,,94,94,,94,94,,,,94,94,94,94,94,94,94,94',
506
+ '94,94,,94,95,95,94,,95,95,,95,,,,,,,,,,,,,,,,,95,,,,,,95,,95,,95,95',
507
+ ',95,95,95,,95,95,,,,,95,95,,,95,,,95,95,,,,,,,95,,,,,,95,,,,95,95,,95',
508
+ '95,,,,95,95,95,95,95,95,95,95,95,,,95,96,96,95,,96,96,,96,,,,,,,,,,',
509
+ ',,,,,,96,,,,,,96,,96,,96,96,,96,96,96,,96,96,,,,,96,96,,,96,,,96,96',
510
+ ',,,,,,96,,,,,,96,,,,96,96,,96,96,,,,96,96,96,96,96,96,96,96,96,,,96',
511
+ '97,97,96,,97,97,,97,,,,,,,,,,,,,,,,,97,,,,,,97,,97,,97,97,,97,97,97',
512
+ ',97,97,,,,,97,97,,,97,,,97,97,,,,,,,97,,,,,,97,,,,97,97,,97,97,,,,97',
513
+ '97,97,97,97,97,97,97,97,,,97,98,98,97,,98,98,,98,,,,,,,,,,,,,,,,,98',
514
+ ',,,,,98,,98,,98,98,,98,98,98,,98,98,,,,,98,98,,,98,,,98,98,,,,,,,98',
515
+ ',,,,,98,,,,98,98,,98,98,,,,98,98,98,98,98,98,98,98,98,,,98,99,99,98',
516
+ ',99,99,,99,,,,,,,,,,,,,,,,,99,,,,,,99,,99,,99,99,,99,99,99,,99,99,,',
517
+ ',,99,99,,,99,,,99,99,,,,,,,99,,,,,,99,,,,99,99,,99,99,,,,99,99,99,99',
518
+ '99,99,99,99,99,,,99,100,100,99,,100,100,,100,,,,,,,,,,,,,,,,,100,,,',
519
+ ',,100,,100,,100,100,,100,100,100,,100,100,,,,,100,100,,,100,,,100,100',
520
+ ',,,,,,100,,,,,,100,,,,100,100,,100,100,,,,100,100,100,100,100,100,100',
521
+ '100,100,,,100,101,101,100,,101,101,,101,,,,,,,,,,,,,,,,,101,,,,,,101',
522
+ ',101,,101,101,,101,101,101,,101,101,,,,,101,101,,,101,,,101,101,,,,',
523
+ ',,101,,,,,,101,,,,101,101,,101,101,,,,101,101,101,101,101,101,101,101',
524
+ '101,,,101,102,102,101,,102,102,,102,,,,,,,,,,,,,,,,,102,,,,,,102,,102',
525
+ ',102,102,,102,102,102,,102,102,,,,,102,102,,,102,,,102,102,,,,,,,102',
526
+ ',,,,,102,,,,102,102,,102,102,,,,102,102,102,102,102,102,102,102,102',
527
+ ',,102,103,103,102,,103,103,,103,,,,,,,,,,,,,,,,,103,,,,,,103,,103,,103',
528
+ '103,,103,103,103,,103,103,,,,,103,103,,,103,,,103,103,,,,,,,103,,,,',
529
+ ',103,,,,103,103,,103,103,,,,103,103,103,103,103,103,103,103,103,,,103',
530
+ '104,104,103,,104,104,,104,,,,,,,,,,,,,,,,,104,,,,,,104,,104,,104,104',
531
+ ',104,104,104,,104,104,,,,,104,104,,,104,,,104,104,,,,,,,104,,,,,,104',
532
+ ',,,104,104,,104,104,,,,104,104,104,104,104,104,104,104,104,,,104,105',
533
+ '105,104,,105,105,,105,,,,,,,,,,,,,,,,,105,,,,,,105,,105,,105,105,,105',
534
+ '105,105,,105,105,,,,,105,105,,,105,,,105,105,,,,,,,105,,,,,,105,,,,105',
535
+ '105,,105,105,,,,105,105,105,105,105,105,105,105,105,,,105,106,106,105',
536
+ ',106,106,,106,,,,,,,,,,,,,,,,,106,,,,,,106,,106,,106,106,,106,106,106',
537
+ ',106,106,,,,,106,106,,,106,,,106,106,,,,,,,106,,,,,,106,,,,106,106,',
538
+ '106,106,,,,106,106,106,106,106,106,106,106,106,,,106,107,107,106,,107',
539
+ '107,,107,,,,,,,,,,,,,,,,,107,,,,,,107,,107,,107,107,,107,107,107,,107',
540
+ '107,,,,,107,107,,,107,,,107,107,,,,,,,107,,,,,,107,,,,107,107,,107,107',
541
+ ',,,107,107,107,107,107,107,107,107,107,,,107,108,108,107,,108,108,,108',
542
+ ',,,,,,,,,,,,,,,,108,,,,,,108,,108,,108,108,,108,108,108,,108,108,,,',
543
+ ',108,108,,,108,,,108,108,,,,,,,108,,,,,,108,,,,108,108,,108,108,,,,108',
544
+ '108,108,108,108,108,108,108,108,,,108,109,109,108,,109,109,,109,,,,',
545
+ ',,,,,,,,,,,,109,,,,,,109,,109,,109,109,,109,109,109,,109,109,,,,,109',
546
+ '109,,,109,,,109,109,,,,,,,109,,,,,,109,,,,109,109,,109,109,,,,109,109',
547
+ '109,109,109,109,109,109,109,,,109,110,110,109,,110,110,,110,,,,,,,,',
548
+ ',,,,,,,,110,,,,,,110,,110,,110,110,,110,110,110,,110,110,,,,,110,110',
549
+ ',,110,,,110,110,,,,,,,110,,,,,,110,,,,110,110,,110,110,,,,110,110,110',
550
+ '110,110,110,110,110,110,,,110,111,111,110,,111,111,,111,,,,,,,,,,,,',
551
+ ',,,,111,,,,,,111,,111,,111,111,,111,111,111,,111,111,,,,,111,111,,,111',
552
+ ',,111,111,,,,,,,111,,,,,,111,,,,111,111,,111,111,,,,111,111,111,111',
553
+ '111,111,111,111,111,,,111,112,112,111,,112,112,,112,,,,,,,,,,,,,,,,',
554
+ '112,,,,,,112,,112,,112,112,,112,112,112,,112,112,,,,,112,112,,,112,',
555
+ ',112,112,,,,,,,112,,,,,,112,,,,112,112,,112,112,,,,112,112,112,112,112',
556
+ '112,112,112,112,,,112,113,113,112,,113,113,,113,,,,,,,,,,,,,,,,,113',
557
+ ',,,,,113,,113,,113,113,,113,113,113,,113,113,,,,,113,113,,,113,,,113',
558
+ '113,,,,,,,113,,,,,,113,,,113,113,113,,113,113,,,,113,113,113,113,113',
559
+ '113,113,113,113,,,113,114,114,113,,114,114,,114,,,,,,,,,,,,,,,,,114',
560
+ ',,,,,114,,114,,114,114,,114,114,114,,114,114,,,,,114,114,,,114,,,114',
561
+ '114,,,,,,,114,,,,,,114,,,,114,114,,114,114,,,,114,114,114,114,114,114',
562
+ '114,114,114,,,114,288,288,114,,288,288,,288,288,,,,,,,,,,,,,,,,288,',
563
+ ',,,,288,,288,,288,288,,288,288,288,,288,288,288,288,,,288,288,,,288',
564
+ ',,288,288,,,,,,,288,,,,,,288,,,,288,288,,288,288,,,,288,288,288,288',
565
+ '288,288,288,288,288,,,288,287,287,288,,287,287,,287,287,,,,,,,,,,,,',
566
+ ',,,287,,,,,,287,,287,,287,287,,287,287,287,,287,287,287,287,,,287,287',
567
+ ',,287,,,287,287,,,,,,,287,,,,,,287,,,,287,287,,287,287,,,,287,287,287',
568
+ '287,287,287,287,287,287,,,287,118,118,287,,118,118,,118,,,,,,,,,,,,',
569
+ ',,,,118,,,,,,118,,118,,118,118,,118,118,118,,118,118,,,,,118,118,,,118',
570
+ ',,118,118,,,,,,,118,,,,,,118,,,,118,118,,118,118,,,,118,118,118,118',
571
+ '118,118,118,118,118,,,118,119,119,118,,119,119,,119,,,,,,,,,,,,,,,,',
572
+ '119,,,,,,119,,119,,119,119,,119,119,119,,119,119,,,,,119,119,,,119,',
573
+ ',119,119,,,,,,,119,,,,,,119,,,,119,119,,119,119,,,,119,119,119,119,119',
574
+ '119,119,119,119,,,119,272,272,119,,272,272,,272,272,,,,,,,,,,,,,,,,272',
575
+ ',,,,,272,,272,,272,272,,272,272,272,,272,272,272,272,,,272,272,,,272',
576
+ ',,272,272,,,,,,,272,,,,,,272,,,,272,272,,272,272,,,,272,272,272,272',
577
+ '272,272,272,272,272,,,272,269,269,272,,269,269,,269,,,,,,,,,,,,,,,,',
578
+ '269,,,,,,269,,269,,269,269,,269,269,269,,269,269,269,269,,,269,269,',
579
+ ',269,,,269,269,,,,,,,269,,,,,,269,,,,269,269,,269,269,,,,269,269,269',
580
+ '269,269,269,269,269,269,,,269,122,122,269,,122,122,,122,,,,,,,,,,,,',
581
+ ',,,,122,,,,,,122,,122,,122,122,,122,122,122,,122,122,,,,,122,122,,,122',
582
+ ',,122,122,,,,,,,122,,,,,,122,,,,122,122,,122,122,,,,122,122,122,122',
583
+ '122,122,122,122,122,,,122,268,268,122,,268,268,,268,,,,,,,,,,,,,,,,',
584
+ '268,,,,,,268,,268,,268,268,,268,268,268,,268,268,,,,,268,268,,,268,',
585
+ ',268,268,,,,,,,268,,,,,,268,,,,268,268,,268,268,,,,268,268,268,268,268',
586
+ '268,268,268,268,,,268,265,265,268,,265,265,,265,,,,,,,,,,,,,,,,,265',
587
+ ',,,,,265,,265,,265,265,,265,265,265,,265,265,265,265,,,265,265,,,265',
588
+ ',,265,265,,,,,,,265,,,,,,265,,,,265,265,,265,265,,,,265,265,265,265',
589
+ '265,265,265,265,265,,,265,248,248,265,,248,248,,248,,,,,,,,,,,,,,,,',
590
+ '248,,,,,,248,,248,,248,248,,248,248,248,,248,248,,,,,248,248,,,248,',
591
+ ',248,248,,,,,,,248,,,,,,248,,,,248,248,,248,248,,,,248,248,248,248,248',
592
+ '248,248,248,248,,,248,205,205,248,,205,205,,205,,,,,,,,,,,,,,,,,205',
593
+ ',,,,,205,,205,,205,205,,205,205,205,,205,205,,,,,205,205,,,205,,,205',
594
+ '205,,,,,,,205,,,,,,205,,,,205,205,,205,205,,,,205,205,205,205,205,205',
595
+ '205,205,205,,,205,204,204,205,,204,204,,204,,,,,,,,,,,,,,,,,204,,,,',
596
+ ',204,,204,,204,204,,204,204,204,,204,204,,,,,204,204,,,204,,,204,204',
597
+ ',,,,,,204,,,,,,204,,,,204,204,,204,204,,,,204,204,204,204,204,204,204',
598
+ '204,204,,,204,203,203,204,,203,203,,203,,,,,,,,,,,,,,,,,203,,,,,,203',
599
+ ',203,,203,203,,203,203,203,,203,203,,,,,203,203,,,203,,,203,203,,,,',
600
+ ',,203,,,,,,203,,,,203,203,,203,203,,,,203,203,203,203,203,203,203,203',
601
+ '203,,,203,198,198,203,,198,198,,198,,,198,,,,,,,,,,,,,,198,,,,,,198',
602
+ ',198,,198,198,,198,198,198,,198,198,,,,,198,198,,,198,,,198,198,,,,',
603
+ ',,198,,,,,,198,,,,198,198,,198,198,,,,198,198,198,198,198,198,198,198',
604
+ '198,,,198,185,185,198,,185,185,,185,185,,,,,,,,,,,,,,,,185,,,,,,185',
605
+ ',185,,185,185,,185,185,185,,185,185,185,185,,,185,185,,,185,,,185,185',
606
+ ',,,,,,185,,,,,,185,,,,185,185,,185,185,,,,185,185,185,185,185,185,185',
607
+ '185,185,,,185,182,182,185,,182,182,,182,,,,,,,,,,,,,,,,,182,,,,,,182',
608
+ ',182,,182,182,,182,182,182,,182,182,182,182,,,182,182,,,182,,,182,182',
609
+ ',,,,,,182,,,,,,182,,,,182,182,,182,182,,,,182,182,182,182,182,182,182',
610
+ '182,182,,,182,157,157,182,,157,157,,157,157,,,,,,,,,,,,,,,,157,,,,,',
611
+ '157,,157,,157,157,,157,157,157,,157,157,157,157,,,157,157,,,157,,,157',
612
+ '157,,,,,,,157,,,,,,157,,,,157,157,,157,157,,,,157,157,157,157,157,157',
613
+ '157,157,157,,,157,70,70,157,,70,70,70,70,,,,,,,,,,,,,,,,,70,,,,,,70',
614
+ ',70,,70,70,,70,70,70,,70,70,70,70,,,70,70,,,70,,,70,70,,,,,,,70,,,,',
615
+ ',70,,,,70,70,,70,70,,,237,70,70,70,70,70,70,70,70,70,,,70,,237,70,237',
616
+ ',237,237,249,,,,,,,,,,,,249,249,249,,249,,249,249,237,249,249,249,249',
617
+ ',,,237,237,237,237,237,237,,237,237,,,,249,,237,,249,249,,,249,249,249',
618
+ '249,249,249,,249,249,,,,,150,249,150,,,,,,,,237,,150,150,150,,150,,150',
619
+ '150,,150,150,150,150,,,,,,249,,,,,,,,,,150,,,,150,150,,,150,150,150',
620
+ '150,150,150,,150,150,152,,152,,,150,,,,,,,152,152,152,,152,,152,152',
621
+ ',152,152,152,152,,,,,,,,,,150,,,,,,152,,,,152,152,,,152,152,152,152',
622
+ '152,152,,152,152,153,,153,,,152,,,,,,,153,153,153,,153,,153,153,,153',
623
+ '153,153,153,,,,,,,,,,152,,,,,,153,,,,153,153,,,153,153,153,153,153,153',
624
+ '9,153,153,,,,,,153,,,,9,9,9,,9,242,9,9,,9,9,9,9,,,,,,242,242,,242,,242',
625
+ '242,153,242,,9,,,,9,9,,,9,9,9,9,9,9,,9,9,242,,,,,9,,243,242,242,242',
626
+ '242,242,242,,242,242,,,243,243,243,242,243,,243,243,,243,243,243,243',
627
+ ',,9,,,,,,,,,,,,,243,,,,242,429,,,243,243,243,243,243,243,,243,243,429',
628
+ '429,429,,429,243,429,429,,429,429,429,429,,,,,,,,,,,,,,,,429,,,,429',
629
+ '429,243,,429,429,429,429,429,429,412,429,429,,,,,,429,,,,412,412,412',
630
+ ',412,,412,412,,412,412,412,412,,,,,,,,,,,,,429,,,412,,,,412,412,,,412',
631
+ '412,412,412,412,412,408,412,412,,,,,,412,,,,408,408,408,,408,,408,408',
632
+ ',408,408,408,408,,,,,,,,,,,,,412,,,408,,,,408,408,,,408,408,408,408',
633
+ '408,408,407,408,408,,,,,,408,,,,407,407,407,,407,,407,407,,407,407,407',
634
+ '407,,,,,,,,,,,,,408,,,407,,,,407,407,,,407,407,407,407,407,407,406,407',
635
+ '407,,,,,,407,,,,406,406,406,,406,,406,406,,406,406,406,406,,,,,,,,,',
636
+ ',,,407,,,406,,,,406,406,,,406,406,406,406,406,406,405,406,406,,,,,,406',
637
+ ',,,405,405,405,,405,,405,405,,405,405,405,405,,,,,,,,,,,,,406,,,405',
638
+ ',,,405,405,,,405,405,405,405,405,405,258,405,405,,,,,,405,,,,258,258',
639
+ '258,258,258,238,258,258,,258,258,258,258,,,,,,,238,,238,,238,238,405',
640
+ ',,258,,,,258,258,,,258,258,258,258,258,258,,258,258,238,,,,,258,,241',
641
+ '238,238,238,238,238,238,,238,238,,,,241,241,238,241,,241,241,,241,,',
642
+ ',,,258,,,,,,,,,,,,,241,,,,238,,,,241,241,241,241,241,241,245,241,241',
643
+ ',,245,,,241,,,,245,245,245,,245,,245,245,,245,245,245,245,,,,,,,,,,',
644
+ ',,241,,,245,,,,245,245,,,245,245,245,245,245,245,364,245,245,,,,,,245',
645
+ ',,,364,364,364,,364,,364,364,,364,364,364,364,,,,,,,,,,,,,245,,,364',
646
+ ',,,364,364,,244,364,364,364,364,364,364,,364,364,,,244,244,244,364,244',
647
+ ',244,244,,244,244,244,244,,,,,,,,,,,,,,,,244,,,,364,244,,,244,244,244',
648
+ '244,244,244,253,244,244,,,,,,244,,,,253,253,253,,253,239,253,253,,253',
649
+ '253,253,253,,,,,,239,239,,239,,239,239,244,239,,253,,,,253,253,,,253',
650
+ '253,253,253,253,253,,253,253,239,,,,,253,,240,239,239,239,239,239,239',
651
+ ',239,239,,,,240,240,239,240,,240,240,,240,,,,,,253,,,,,,,,,,,,,240,',
652
+ ',,239,196,,,240,240,240,240,240,240,,240,240,196,196,196,196,196,240',
653
+ '196,196,,196,196,196,196,,,,,,,,,,,,,,,,196,,,,196,196,240,,196,196',
654
+ '196,196,196,196,184,196,196,,,,,,196,,,,184,184,184,,184,,184,184,,184',
655
+ '184,184,184,,,,,,,,,,,,,196,,,184,,,,184,184,,,184,184,184,184,184,184',
656
+ ',184,184,,322,322,322,322,184,322,322,322,,322,,322,322,,,184,184,,',
657
+ '322,322,322,,,,322,,,,,,,,184,,,,322,322,,,,,,,,,,,,322,322,322,322',
658
+ '322,322,322,322,322,322,361,361,361,361,,361,361,361,,361,,361,361,',
659
+ ',,,,,361,361,361,,,,361,,,,,,,,,,,,361,361,,,,,,,,,,,,361,361,361,361',
660
+ '361,361,361,361,361,361,386,386,386,386,,386,386,386,,386,,386,386,',
661
+ ',,,,,386,386,386,,,,386,,,,,,,,,,,,386,386,,,,,,,,,,,,386,386,386,386',
662
+ '386,386,386,386,386,386,320,320,320,320,,320,320,320,,320,,320,320,',
663
+ ',,,,,320,320,320,,,,320,,,,,,,,,,,,320,320,,,,,,,,,,,,320,320,320,320',
664
+ '320,320,320,320,320,320,355,355,355,355,,355,355,355,,355,,355,355,',
665
+ ',,,,,355,355,355,,,,355,,,,,,,,,,,,355,355,,,,,,,,,,,,355,355,355,355',
666
+ '355,355,355,355,355,355,252,252,252,252,,252,252,252,,252,,252,252,',
667
+ ',,,,,252,252,252,,,,252,,,,,,,,,,,,252,252,,,,,,,,,,,,252,252,252,252',
668
+ '252,252,252,252,252,252' ]
669
+ racc_action_check = arr = ::Array.new(9987, nil)
646
670
  idx = 0
647
671
  clist.each do |str|
648
672
  str.split(',', -1).each do |i|
@@ -652,224 +676,230 @@ clist = [
652
676
  end
653
677
 
654
678
  racc_action_pointer = [
655
- -2, 437, nil, nil, 182, 419, nil, 868, 419, 8418,
656
- 642, 734, 390, nil, nil, nil, 171, 1010, 1102, 1194,
679
+ -2, 437, nil, nil, 182, 419, nil, 881, 415, 8693,
680
+ 642, 734, 572, nil, nil, nil, 103, 1010, 1102, 1194,
657
681
  1286, nil, nil, nil, nil, nil, nil, nil, nil, nil,
658
682
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
659
- nil, nil, nil, nil, 145, 320, 361, 1654, 1746, 1838,
660
- 20, 112, 111, 365, 1073, 384, 78, 22, 103, 201,
661
- 138, 105, nil, nil, nil, nil, 3034, 3126, 3218, nil,
662
- nil, nil, nil, 3310, nil, 267, 268, nil, 3586, nil,
663
- 332, 3770, 315, 3954, 4046, 4138, 4230, 4322, 4414, 4506,
664
- 4598, 4690, 4782, 4874, 4966, 5058, 5150, 5242, 5334, 5426,
665
- 5518, 5610, 5702, 5794, 5886, 5978, 6070, 6162, 6254, 6346,
666
- 6438, 6530, 6622, 262, 293, 6898, 6990, 286, 244, 7266,
667
- 214, nil, nil, nil, nil, nil, nil, nil, nil, nil,
668
- 292, nil, nil, 1198, 248, 1014, 1382, 135, nil, 146,
669
- 225, 7634, 8179, nil, 8236, 8293, 97, 85, 568, 3402,
670
- 61, nil, -4, nil, nil, nil, nil, nil, nil, nil,
671
- 140, nil, 174, nil, 197, nil, 5, nil, nil, 333,
672
- nil, 133, nil, nil, 64, 8094, 250, 8921, 2022, nil,
673
- 371, nil, nil, nil, nil, 379, 380, 388, 405, 9251,
674
- 416, 1930, -1, -9, 44, 1562, 826, 550, nil, nil,
675
- 90, 159, 67, -2, 4, 758, 664, 751, 981, 659,
676
- 24, 9, -4, nil, nil, nil, nil, nil, nil, nil,
677
- 1376, 646, 922, 94, 2, 1192, 1106, 1290, 186, 462,
678
- 8310, 8813, 8968, 9197, 9180, 9133, 9116, 9069, 9022, nil,
679
- nil, 2206, 8796, 358, 352, 284, nil, 9284, 8742, 306,
680
- nil, 329, 305, 8688, nil, 302, nil, 252, 317, nil,
681
- nil, 2390, nil, 303, nil, nil, nil, nil, nil, 278,
682
- 237, -24, 238, nil, -7, nil, 2574, 2666, 2758, 141,
683
- 136, 116, 19, nil, 339, 935, -28, 31, 2850, 87,
684
- 96, nil, 7174, 7450, nil, nil, nil, nil, 2298, nil,
685
- nil, nil, nil, 115, nil, nil, nil, nil, 120, 132,
686
- 9584, 138, 9524, 8002, 7910, 7818, 7726, 177, nil, 198,
687
- 7542, 188, nil, 204, nil, nil, nil, nil, nil, 208,
683
+ nil, nil, nil, nil, nil, nil, 196, 1470, -20, 295,
684
+ 316, 1838, 1930, 2022, 476, 843, 22, 303, 1027, 384,
685
+ 20, 107, 109, 111, 113, 171, nil, nil, nil, 3218,
686
+ 8370, 3402, nil, nil, nil, nil, 3494, nil, 33, 33,
687
+ nil, 3770, nil, 95, 3954, 174, 4138, 4230, 4322, 4414,
688
+ 4506, 4598, 4690, 4782, 4874, 4966, 5058, 5150, 5242, 5334,
689
+ 5426, 5518, 5610, 5702, 5794, 5886, 5978, 6070, 6162, 6254,
690
+ 6346, 6438, 6530, 6622, 6714, nil, 149, 208, 6990, 7082,
691
+ 319, 323, 7358, 307, nil, nil, nil, nil, nil, nil,
692
+ nil, nil, nil, 204, nil, nil, 1382, 616, 1566, 1198,
693
+ 318, nil, 282, 238, nil, 220, nil, 422, 225, 3310,
694
+ 8525, nil, 8582, 8639, 378, 369, 482, 8278, 358, nil,
695
+ 334, nil, nil, nil, nil, nil, nil, nil, 328, 340,
696
+ nil, 337, nil, 93, nil, nil, 327, nil, 192, nil,
697
+ nil, 64, 8186, 250, 9562, 8094, nil, 266, nil, nil,
698
+ nil, nil, 238, 231, 153, 133, 9508, 13, 8002, 7,
699
+ 9, 159, -9, 7910, 7818, 7726, nil, nil, 90, 67,
700
+ 44, -2, -9, 756, 751, 660, 1073, 248, -4, -1,
701
+ nil, nil, nil, nil, nil, nil, nil, 1652, 738, 1014,
702
+ 554, 186, 1192, 1290, 1106, 94, 2, 8444, 9143, 9416,
703
+ 9463, 9190, 8710, 8757, 9345, 9244, nil, nil, 7634, 8464,
704
+ 372, nil, 9895, 9399, 340, nil, 363, 344, 9126, nil,
705
+ 345, nil, 96, 370, nil, 7542, 314, nil, 7450, 7266,
706
+ 280, nil, 7174, nil, 309, nil, nil, nil, nil, nil,
707
+ 289, 268, -24, 230, nil, -11, nil, 6898, 6806, 4046,
708
+ 161, 157, 27, 370, nil, -20, 935, -28, 60, 66,
709
+ 70, nil, 3862, 3678, nil, nil, nil, nil, 3586, nil,
710
+ nil, nil, nil, 105, nil, nil, nil, nil, 113, 118,
711
+ 9775, 145, 9595, 3126, 3034, 2942, 2850, 193, nil, 207,
712
+ 2758, 207, nil, nil, nil, nil, nil, 218, nil, nil,
688
713
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
689
- nil, nil, nil, nil, nil, 224, 7358, 9464, 238, nil,
690
- 524, nil, 245, 9404, 277, nil, 219, 255, 7082, nil,
691
- nil, 6806, 6714, nil, 295, 70, 312, 292, 9, 3862,
692
- nil, 3678, 3494, 9344, nil, 333, nil, 1027, nil, nil,
693
- 2942, nil, nil, nil, nil, nil, nil, nil, 275, 124,
694
- 337, nil, nil, 8364, 8472, 8526, 8580, 356, 2482, nil,
695
- 8867, -69, 372, nil, nil, 370, 2114, nil, nil, nil,
696
- 358, 373, nil, nil, nil, 8634, 6, 77, nil, 1470,
697
- 384, 361, nil, 386, 1378, 392, nil, nil, 394, nil,
698
- nil, 398, 400, 918, nil, 407, nil, nil, 408, 378,
699
- nil, nil, nil, nil, nil, 414, nil, 416, nil, nil,
700
- nil, 458, nil, 366, 274, nil, nil, 424, 425, nil,
701
- nil, nil, 90, nil, nil, 428, nil, 432, nil, 435,
702
- nil, nil, nil, nil, 404, nil, nil, nil, nil ]
714
+ nil, nil, nil, 224, 2666, 9835, 233, nil, 340, nil,
715
+ 260, 9655, nil, 223, 9298, 288, 292, 292, nil, 232,
716
+ 112, 2574, nil, nil, 2482, 2390, nil, 306, 75, 315,
717
+ 293, 9, 2298, nil, 2206, 2114, 9715, nil, 331, nil,
718
+ 981, nil, nil, 1746, nil, nil, nil, nil, nil, nil,
719
+ 272, 57, 334, nil, nil, 9072, 9018, 8964, 8910, 355,
720
+ 1654, nil, 8856, 364, nil, nil, 365, 1562, nil, nil,
721
+ nil, -13, 369, nil, nil, 1378, nil, nil, nil, 8802,
722
+ 7, 72, nil, 918, 382, 360, nil, 385, 826, 387,
723
+ nil, nil, 387, nil, nil, 389, 388, 550, nil, 398,
724
+ nil, nil, 403, 372, nil, nil, nil, nil, 407, nil,
725
+ 408, 410, nil, nil, nil, 458, nil, 366, 274, nil,
726
+ nil, 424, 425, nil, nil, nil, 90, nil, nil, nil,
727
+ 428, nil, 429, nil, 432, nil, nil, nil, nil, 403,
728
+ nil, nil, nil, nil ]
703
729
 
704
730
  racc_action_default = [
705
- -3, -269, -1, -2, -4, -5, -8, -10, -16, -21,
706
- -269, -269, -181, -33, -34, -35, -36, -269, -269, -269,
707
- -269, -63, -64, -65, -66, -67, -68, -69, -70, -71,
731
+ -3, -275, -1, -2, -4, -5, -8, -10, -16, -21,
732
+ -275, -275, -185, -33, -34, -35, -36, -275, -275, -275,
733
+ -275, -63, -64, -65, -66, -67, -68, -69, -70, -71,
708
734
  -72, -73, -74, -75, -76, -77, -78, -79, -80, -81,
709
- -82, -83, -84, -85, -86, -91, -95, -269, -269, -269,
710
- -269, -269, -269, -269, -269, -269, -219, -242, -201, -202,
711
- -203, -204, -197, -198, -199, -200, -269, -269, -269, -215,
712
- -216, -217, -218, -269, -221, -269, -234, -237, -269, -243,
713
- -269, -269, -7, -269, -269, -269, -269, -269, -269, -269,
714
- -269, -131, -269, -269, -269, -269, -269, -269, -269, -269,
715
- -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
716
- -269, -269, -269, -269, -126, -268, -268, -22, -23, -269,
717
- -268, -150, -174, -175, -176, -177, -178, -179, -180, -181,
718
- -269, -147, -148, -47, -181, -48, -55, -269, -92, -269,
719
- -269, -269, -269, -102, -269, -269, -268, -268, -269, -269,
720
- -244, -161, -163, -164, -165, -166, -167, -169, -170, -219,
721
- -268, -14, -244, -206, -244, -208, -269, -211, -212, -269,
722
- -220, -269, -225, -228, -269, -232, -269, -269, -269, 479,
723
- -6, -9, -11, -12, -13, -17, -18, -19, -20, -269,
724
- -244, -269, -84, -85, -86, -255, -261, -249, -132, -135,
725
- -201, -202, -203, -204, -269, -252, -266, -181, -258, -264,
726
- -198, -199, -200, -248, -253, -254, -256, -257, -259, -267,
727
- -37, -38, -39, -40, -41, -42, -43, -44, -45, -46,
728
- -49, -50, -51, -52, -53, -54, -56, -57, -269, -58,
729
- -120, -269, -61, -244, -244, -88, -96, -131, -130, -269,
730
- -129, -269, -246, -269, -28, -268, -182, -269, -269, -59,
731
- -97, -269, -100, -244, -185, -187, -188, -189, -190, -192,
732
- -269, -269, -195, -242, -269, -94, -269, -269, -269, -269,
733
- -269, -269, -269, -158, -268, -245, -269, -269, -245, -269,
734
- -269, -209, -269, -269, -222, -223, -224, -226, -269, -229,
735
- -230, -231, -233, -244, -235, -238, -240, -241, -8, -269,
736
- -131, -269, -245, -269, -269, -269, -269, -244, -122, -269,
737
- -245, -269, -90, -244, -134, -136, -137, -138, -139, -269,
738
- -249, -250, -251, -252, -255, -258, -260, -261, -262, -263,
739
- -264, -265, -266, -127, -128, -269, -247, -131, -269, -153,
740
- -269, -183, -244, -131, -269, -99, -269, -245, -269, -193,
741
- -194, -269, -269, -93, -269, -105, -269, -111, -269, -269,
742
- -115, -268, -268, -131, -157, -269, -171, -269, -162, -168,
743
- -268, -15, -205, -207, -210, -213, -214, -227, -269, -269,
744
- -244, -26, -133, -142, -140, -141, -124, -269, -245, -60,
745
- -62, -87, -269, -25, -29, -244, -268, -154, -155, -156,
746
- -269, -244, -98, -101, -186, -191, -269, -105, -104, -269,
747
- -269, -111, -110, -269, -269, -269, -114, -116, -269, -151,
748
- -152, -269, -244, -269, -172, -269, -236, -239, -269, -30,
749
- -121, -123, -89, -125, -27, -269, -184, -269, -196, -103,
750
- -106, -269, -109, -269, -268, -143, -144, -269, -269, -160,
751
- -173, -24, -31, -149, -146, -269, -108, -269, -113, -269,
752
- -118, -119, -145, -159, -246, -107, -112, -117, -32 ]
735
+ -82, -83, -84, -85, -86, -87, -88, -275, -275, -95,
736
+ -99, -275, -275, -275, -275, -275, -275, -275, -275, -275,
737
+ -225, -248, -207, -208, -209, -210, -204, -205, -206, -275,
738
+ -275, -275, -221, -222, -223, -224, -275, -227, -275, -240,
739
+ -243, -275, -249, -275, -275, -7, -275, -275, -275, -275,
740
+ -275, -275, -275, -275, -135, -275, -275, -275, -275, -275,
741
+ -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
742
+ -275, -275, -275, -275, -275, -93, -275, -130, -274, -274,
743
+ -22, -23, -275, -274, -154, -178, -179, -180, -181, -182,
744
+ -183, -184, -185, -275, -151, -152, -47, -185, -48, -55,
745
+ -275, -14, -250, -90, -94, -275, -96, -275, -275, -275,
746
+ -275, -106, -275, -275, -274, -274, -275, -275, -250, -165,
747
+ -167, -168, -169, -170, -171, -173, -174, -225, -274, -250,
748
+ -212, -250, -214, -275, -217, -218, -275, -226, -275, -231,
749
+ -234, -275, -238, -275, -275, -275, 494, -6, -9, -11,
750
+ -12, -13, -17, -18, -19, -20, -275, -250, -275, -86,
751
+ -87, -88, -268, -261, -267, -255, -136, -139, -207, -208,
752
+ -209, -210, -275, -258, -272, -185, -264, -270, -205, -206,
753
+ -254, -259, -260, -262, -263, -265, -273, -37, -38, -39,
754
+ -40, -41, -42, -43, -44, -45, -46, -49, -50, -51,
755
+ -52, -53, -54, -56, -57, -275, -58, -124, -275, -61,
756
+ -250, -100, -135, -134, -275, -133, -275, -252, -275, -28,
757
+ -274, -186, -275, -275, -59, -251, -275, -92, -275, -238,
758
+ -275, -101, -275, -104, -250, -189, -191, -192, -193, -194,
759
+ -196, -275, -275, -199, -248, -275, -98, -275, -275, -275,
760
+ -275, -275, -275, -275, -162, -274, -251, -275, -275, -275,
761
+ -275, -215, -275, -275, -228, -229, -230, -232, -275, -235,
762
+ -236, -237, -239, -250, -241, -244, -246, -247, -8, -275,
763
+ -135, -275, -251, -275, -275, -275, -275, -250, -126, -275,
764
+ -251, -250, -138, -140, -141, -142, -143, -275, -255, -256,
765
+ -257, -258, -261, -264, -266, -267, -268, -269, -270, -271,
766
+ -272, -131, -132, -275, -253, -135, -275, -157, -275, -187,
767
+ -250, -135, -15, -89, -201, -275, -275, -275, -103, -275,
768
+ -251, -275, -197, -198, -275, -275, -97, -275, -109, -275,
769
+ -115, -275, -275, -119, -274, -274, -135, -161, -275, -175,
770
+ -275, -166, -172, -274, -211, -213, -216, -219, -220, -233,
771
+ -275, -275, -250, -26, -137, -146, -144, -145, -128, -275,
772
+ -251, -60, -62, -275, -25, -29, -250, -274, -158, -159,
773
+ -160, -275, -250, -91, -202, -238, -102, -105, -190, -195,
774
+ -275, -109, -108, -275, -275, -115, -114, -275, -275, -275,
775
+ -118, -120, -275, -155, -156, -275, -250, -275, -176, -275,
776
+ -242, -245, -275, -30, -125, -127, -129, -27, -275, -188,
777
+ -275, -275, -200, -107, -110, -275, -113, -275, -274, -147,
778
+ -148, -275, -275, -164, -177, -24, -31, -153, -150, -203,
779
+ -275, -112, -275, -117, -275, -122, -123, -149, -163, -252,
780
+ -111, -116, -121, -32 ]
753
781
 
754
782
  racc_goto_table = [
755
- 2, 138, 133, 135, 136, 252, 155, 137, 240, 121,
756
- 153, 170, 243, 345, 378, 272, 250, 250, 305, 370,
757
- 263, 82, 162, 164, 239, 130, 317, 190, 369, 428,
758
- 431, 392, 142, 144, 145, 117, 118, 450, 435, 249,
759
- 251, 260, 438, 469, 348, 407, 375, 146, 147, 422,
760
- 418, 272, 160, 161, 161, 169, 303, 404, 379, 414,
761
- 172, 148, 360, 177, 445, 359, 385, 299, 244, 300,
762
- 181, 182, 183, 184, 3, 297, 189, 220, 221, 222,
763
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
764
- 233, 234, 235, 236, 237, 238, 242, 274, 180, 161,
765
- 248, 248, 449, 452, 253, 298, 434, 296, 173, 175,
766
- 427, 301, 185, 186, 187, 188, 1, 255, nil, nil,
767
- nil, 284, nil, nil, nil, nil, nil, 258, 161, nil,
768
- nil, 121, 272, 289, nil, 290, nil, 352, nil, 318,
769
- nil, nil, nil, 279, 280, 281, nil, nil, nil, 282,
770
- nil, nil, nil, nil, nil, nil, 349, 287, nil, nil,
771
- 155, 311, nil, nil, 153, 308, nil, nil, nil, nil,
772
- nil, nil, nil, nil, nil, 302, 135, nil, 309, nil,
773
- 142, 144, 145, 323, nil, 376, nil, nil, nil, nil,
783
+ 2, 257, 136, 138, 139, 124, 161, 140, 163, 247,
784
+ 197, 146, 315, 250, 311, 177, 353, 142, 255, 255,
785
+ 283, 391, 85, 383, 274, 432, 356, 133, 120, 121,
786
+ 254, 256, 442, 445, 141, 452, 150, 152, 153, 169,
787
+ 171, 449, 404, 484, 382, 436, 464, 154, 155, 246,
788
+ 327, 418, 168, 388, 271, 283, 141, 141, 176, 313,
789
+ 392, 428, 373, 179, 372, 458, 184, 156, 415, 397,
790
+ 309, 310, 3, 188, 189, 190, 191, 307, 463, 196,
791
+ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
792
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 249,
793
+ 466, 365, 187, 253, 253, 267, 308, 258, 192, 193,
794
+ 194, 195, 306, 180, 182, 448, 441, 1, nil, 285,
795
+ 260, nil, nil, nil, nil, nil, 263, nil, nil, 266,
796
+ 124, nil, nil, nil, 283, nil, 141, nil, 360, nil,
797
+ nil, nil, nil, nil, 328, 295, nil, nil, nil, 292,
798
+ nil, 290, 291, nil, nil, nil, 299, 293, 300, nil,
799
+ 357, nil, nil, nil, 161, 298, 163, nil, 331, nil,
800
+ nil, nil, 318, nil, nil, nil, nil, nil, nil, nil,
801
+ nil, nil, 312, 138, 321, 319, nil, nil, 150, 152,
802
+ 153, nil, nil, nil, nil, 389, nil, nil, nil, nil,
803
+ nil, nil, nil, nil, nil, nil, 154, 155, 124, nil,
804
+ 168, nil, nil, nil, nil, nil, nil, nil, nil, nil,
805
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 451,
806
+ nil, nil, nil, 245, nil, nil, 402, 329, nil, nil,
807
+ nil, nil, 283, nil, 161, nil, 163, 399, 493, nil,
808
+ nil, nil, 362, 364, nil, nil, nil, 461, nil, nil,
809
+ nil, 369, nil, nil, nil, nil, nil, nil, nil, 312,
810
+ nil, 416, 367, 430, 249, nil, nil, 422, nil, nil,
811
+ nil, nil, nil, nil, 444, 444, nil, 377, 379, 176,
812
+ 398, nil, nil, 444, nil, 179, nil, nil, nil, nil,
813
+ 400, nil, 446, nil, nil, nil, 455, nil, 405, 406,
814
+ 407, 408, nil, nil, 409, 412, nil, 444, 413, nil,
815
+ nil, nil, nil, nil, nil, 423, nil, nil, nil, nil,
816
+ nil, nil, nil, nil, nil, nil, nil, nil, 161, 258,
817
+ 163, nil, nil, nil, nil, nil, nil, 421, nil, nil,
818
+ nil, 419, nil, nil, nil, 489, 429, nil, nil, 249,
819
+ nil, nil, 362, nil, nil, nil, nil, 249, 485, nil,
774
820
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
775
- nil, 322, 146, 147, 121, nil, 160, nil, nil, nil,
776
- nil, nil, nil, nil, 319, 321, nil, nil, nil, nil,
777
- nil, nil, nil, nil, nil, nil, 238, nil, nil, nil,
778
- 437, nil, 272, nil, 356, 478, 387, 155, nil, nil,
779
- nil, 153, nil, nil, nil, nil, 390, nil, nil, nil,
821
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 453,
822
+ nil, nil, nil, nil, nil, 245, nil, nil, nil, nil,
823
+ nil, nil, nil, 457, nil, nil, nil, nil, nil, 460,
824
+ nil, nil, nil, nil, nil, nil, nil, nil, 150, nil,
825
+ nil, nil, nil, 412, nil, 312, nil, nil, nil, nil,
826
+ nil, nil, nil, 471, nil, nil, nil, nil, nil, nil,
827
+ nil, nil, nil, nil, nil, nil, nil, 472, nil, nil,
780
828
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
781
- nil, 354, 416, 242, nil, nil, nil, nil, nil, nil,
782
- nil, nil, 430, 430, 388, 381, 364, 366, nil, 169,
783
- 386, 430, nil, 405, nil, 172, nil, nil, 397, 411,
784
- nil, nil, nil, nil, 402, nil, 441, nil, 393, 394,
785
- 395, 396, nil, nil, nil, 400, nil, 430, nil, 432,
786
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
787
- nil, nil, nil, 410, nil, nil, nil, nil, nil, 155,
788
- nil, 253, nil, 153, nil, nil, nil, nil, nil, nil,
789
- nil, nil, nil, 415, nil, nil, 242, 408, 474, 381,
790
- nil, nil, nil, nil, 242, 470, nil, 442, nil, nil,
791
- nil, 439, nil, nil, nil, nil, nil, nil, nil, nil,
792
- nil, nil, nil, nil, nil, nil, 444, nil, nil, nil,
793
- nil, nil, 447, 238, nil, nil, nil, nil, nil, nil,
794
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
795
- nil, nil, nil, 457, 142, nil, nil, nil, nil, 400,
796
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
797
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
798
- nil, nil, nil, 458, nil, nil, nil, nil, nil, nil,
799
- nil, nil, nil, nil, nil, nil, nil, 253, nil, nil,
800
- nil, 465, nil, 467, 471 ]
829
+ nil, 258, nil, nil, nil, 480, nil, 482, 486 ]
801
830
 
802
831
  racc_goto_check = [
803
- 2, 42, 10, 10, 10, 13, 39, 6, 55, 62,
804
- 40, 86, 22, 14, 71, 41, 54, 54, 94, 52,
805
- 47, 5, 8, 8, 21, 65, 56, 11, 51, 64,
806
- 64, 59, 10, 10, 10, 9, 9, 48, 64, 58,
807
- 58, 46, 12, 53, 67, 68, 70, 62, 62, 50,
808
- 49, 41, 62, 6, 6, 6, 47, 16, 73, 74,
809
- 6, 65, 75, 10, 64, 77, 81, 82, 8, 83,
810
- 6, 6, 6, 6, 3, 87, 10, 10, 10, 10,
832
+ 2, 13, 10, 10, 10, 65, 42, 6, 41, 58,
833
+ 11, 45, 97, 22, 83, 90, 14, 8, 57, 57,
834
+ 43, 74, 5, 55, 50, 52, 70, 68, 9, 9,
835
+ 61, 61, 67, 67, 6, 12, 10, 10, 10, 8,
836
+ 8, 67, 62, 56, 54, 53, 51, 65, 65, 21,
837
+ 59, 71, 65, 73, 49, 43, 6, 6, 6, 50,
838
+ 76, 77, 78, 6, 80, 67, 10, 68, 16, 85,
839
+ 86, 87, 3, 6, 6, 6, 6, 91, 52, 10,
811
840
  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
812
- 10, 10, 10, 10, 10, 10, 10, 8, 5, 6,
813
- 10, 10, 49, 50, 10, 88, 71, 90, 91, 92,
814
- 52, 93, 9, 9, 9, 9, 1, 63, nil, nil,
815
- nil, 15, nil, nil, nil, nil, nil, 62, 6, nil,
816
- nil, 62, 41, 15, nil, 15, nil, 47, nil, 55,
817
- nil, nil, nil, 63, 63, 62, nil, nil, nil, 2,
818
- nil, nil, nil, nil, nil, nil, 54, 63, nil, nil,
819
- 39, 15, nil, nil, 40, 6, nil, nil, nil, nil,
820
- nil, nil, nil, nil, nil, 2, 10, nil, 2, nil,
821
- 10, 10, 10, 11, nil, 54, nil, nil, nil, nil,
822
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
823
- nil, 42, 62, 62, 62, nil, 62, nil, nil, nil,
824
- nil, nil, nil, nil, 15, 15, nil, nil, nil, nil,
825
- nil, nil, nil, nil, nil, nil, 10, nil, nil, nil,
826
- 94, nil, 41, nil, 15, 14, 86, 39, nil, nil,
827
- nil, 40, nil, nil, nil, nil, 11, nil, nil, nil,
828
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
829
- nil, 2, 22, 10, nil, nil, nil, nil, nil, nil,
830
- nil, nil, 54, 54, 15, 6, 2, 2, nil, 6,
831
- 6, 54, nil, 11, nil, 6, nil, nil, 15, 11,
832
- nil, nil, nil, nil, 15, nil, 55, nil, 10, 10,
833
- 10, 10, nil, nil, nil, 10, nil, 54, nil, 11,
834
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
835
- nil, nil, nil, 15, nil, nil, nil, nil, nil, 39,
836
- nil, 10, nil, 40, nil, nil, nil, nil, nil, nil,
837
- nil, nil, nil, 10, nil, nil, 10, 62, 13, 6,
838
- nil, nil, nil, nil, 10, 54, nil, 42, nil, nil,
839
- nil, 15, nil, nil, nil, nil, nil, nil, nil, nil,
840
- nil, nil, nil, nil, nil, nil, 15, nil, nil, nil,
841
- nil, nil, 15, 10, nil, nil, nil, nil, nil, nil,
842
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
843
- nil, nil, nil, 15, 10, nil, nil, nil, nil, 10,
841
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
842
+ 53, 83, 5, 10, 10, 45, 92, 10, 9, 9,
843
+ 9, 9, 94, 95, 96, 74, 55, 1, nil, 8,
844
+ 66, nil, nil, nil, nil, nil, 65, nil, nil, 15,
845
+ 65, nil, nil, nil, 43, nil, 6, nil, 50, nil,
846
+ nil, nil, nil, nil, 58, 15, nil, nil, nil, 65,
847
+ nil, 66, 66, nil, nil, nil, 15, 2, 15, nil,
848
+ 57, nil, nil, nil, 42, 66, 41, nil, 11, nil,
849
+ nil, nil, 6, nil, nil, nil, nil, nil, nil, nil,
850
+ nil, nil, 2, 10, 15, 2, nil, nil, 10, 10,
851
+ 10, nil, nil, nil, nil, 57, nil, nil, nil, nil,
852
+ nil, nil, nil, nil, nil, nil, 65, 65, 65, nil,
853
+ 65, nil, nil, nil, nil, nil, nil, nil, nil, nil,
854
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 97,
855
+ nil, nil, nil, 10, nil, nil, 11, 15, nil, nil,
856
+ nil, nil, 43, nil, 42, nil, 41, 90, 14, nil,
857
+ nil, nil, 6, 10, nil, nil, nil, 83, nil, nil,
858
+ nil, 15, nil, nil, nil, nil, nil, nil, nil, 2,
859
+ nil, 11, 2, 22, 10, nil, nil, 11, nil, nil,
860
+ nil, nil, nil, nil, 57, 57, nil, 2, 2, 6,
861
+ 6, nil, nil, 57, nil, 6, nil, nil, nil, nil,
862
+ 15, nil, 11, nil, nil, nil, 58, nil, 10, 10,
863
+ 10, 10, nil, nil, 15, 10, nil, 57, 15, nil,
864
+ nil, nil, nil, nil, nil, 45, nil, nil, nil, nil,
865
+ nil, nil, nil, nil, nil, nil, nil, nil, 42, 10,
866
+ 41, nil, nil, nil, nil, nil, nil, 15, nil, nil,
867
+ nil, 65, nil, nil, nil, 13, 10, nil, nil, 10,
868
+ nil, nil, 6, nil, nil, nil, nil, 10, 57, nil,
844
869
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
870
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 15,
871
+ nil, nil, nil, nil, nil, 10, nil, nil, nil, nil,
872
+ nil, nil, nil, 15, nil, nil, nil, nil, nil, 15,
873
+ nil, nil, nil, nil, nil, nil, nil, nil, 10, nil,
874
+ nil, nil, nil, 10, nil, 2, nil, nil, nil, nil,
875
+ nil, nil, nil, 15, nil, nil, nil, nil, nil, nil,
876
+ nil, nil, nil, nil, nil, nil, nil, 2, nil, nil,
845
877
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
846
- nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
847
- nil, nil, nil, nil, nil, nil, nil, 10, nil, nil,
848
- nil, 2, nil, 2, 2 ]
878
+ nil, 10, nil, nil, nil, 2, nil, 2, 2 ]
849
879
 
850
880
  racc_goto_pointer = [
851
- nil, 116, 0, 74, nil, 17, -13, nil, -44, 25,
852
- -15, -64, -348, -114, -239, -29, -289, nil, nil, nil,
853
- nil, -86, -99, nil, nil, nil, nil, nil, nil, nil,
854
- nil, nil, nil, nil, nil, nil, nil, nil, nil, -48,
855
- -44, -125, -44, nil, nil, nil, -98, -120, -382, -315,
856
- -318, -250, -259, -411, -99, -102, -215, nil, -76, -281,
857
- nil, nil, -3, -3, -342, 9, nil, -211, -305, nil,
858
- -238, -271, nil, -228, -298, -209, nil, -205, nil, nil,
859
- nil, -226, -107, -105, nil, nil, -62, -96, -66, nil,
860
- -64, 33, 33, -64, -159 ]
881
+ nil, 117, 0, 72, nil, 18, -13, nil, -30, 18,
882
+ -15, -84, -367, -121, -241, -13, -286, nil, nil, nil,
883
+ nil, -64, -101, nil, nil, nil, nil, nil, nil, nil,
884
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
885
+ nil, -50, -52, -128, nil, -38, nil, nil, nil, -93,
886
+ -124, -387, -353, -335, -245, -266, -425, -100, -104, -198,
887
+ nil, -88, -280, nil, nil, -7, -3, -352, 11, nil,
888
+ -234, -307, nil, -242, -275, nil, -237, -309, -220, nil,
889
+ -217, nil, nil, -168, nil, -233, -111, -110, nil, nil,
890
+ -61, -101, -72, nil, -66, 35, 35, -172 ]
861
891
 
862
892
  racc_goto_default = [
863
- nil, nil, 429, nil, 4, 5, 6, 7, nil, 8,
864
- 9, nil, nil, nil, nil, nil, 254, 13, 14, 15,
865
- 16, nil, 368, 21, 22, 23, 24, 25, 26, 27,
893
+ nil, nil, 443, nil, 4, 5, 6, 7, nil, 8,
894
+ 9, nil, nil, nil, nil, nil, 259, 13, 14, 15,
895
+ 16, nil, 381, 21, 22, 23, 24, 25, 26, 27,
866
896
  28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
867
- 38, 39, nil, 45, 46, 139, nil, nil, 143, nil,
868
- nil, nil, nil, nil, 256, nil, nil, 114, nil, 198,
869
- 204, 199, 52, nil, nil, nil, 120, nil, nil, 150,
870
- nil, 151, 152, 156, 264, 265, 266, 267, 268, 271,
871
- 166, 168, 69, 70, 71, 73, nil, nil, nil, 171,
872
- nil, nil, nil, nil, nil ]
897
+ 38, 39, 40, 41, 47, nil, 49, 50, 147, nil,
898
+ nil, 151, nil, nil, nil, nil, nil, 261, nil, nil,
899
+ 117, nil, 206, 212, 207, 56, nil, nil, nil, 123,
900
+ nil, nil, 158, nil, 159, 160, 164, 275, 276, 277,
901
+ 278, 279, 282, nil, 173, 175, 72, 73, 74, 76,
902
+ nil, nil, nil, 178, nil, nil, nil, nil ]
873
903
 
874
904
  racc_reduce_table = [
875
905
  0, 0, :racc_error,
@@ -954,197 +984,203 @@ racc_reduce_table = [
954
984
  1, 116, :_reduce_none,
955
985
  1, 116, :_reduce_none,
956
986
  1, 116, :_reduce_none,
957
- 1, 116, :_reduce_82,
958
- 1, 116, :_reduce_83,
987
+ 1, 116, :_reduce_none,
988
+ 1, 116, :_reduce_none,
959
989
  1, 116, :_reduce_84,
960
990
  1, 116, :_reduce_85,
961
991
  1, 116, :_reduce_86,
962
- 5, 118, :_reduce_87,
963
- 3, 118, :_reduce_88,
964
- 6, 118, :_reduce_89,
965
- 4, 118, :_reduce_90,
966
- 1, 123, :_reduce_91,
967
- 2, 123, :_reduce_92,
968
- 4, 142, :_reduce_93,
969
- 3, 142, :_reduce_94,
970
- 1, 142, :_reduce_95,
971
- 3, 143, :_reduce_96,
972
- 2, 141, :_reduce_97,
992
+ 1, 116, :_reduce_87,
993
+ 1, 116, :_reduce_88,
994
+ 4, 118, :_reduce_89,
995
+ 2, 118, :_reduce_90,
996
+ 5, 118, :_reduce_91,
997
+ 3, 118, :_reduce_92,
998
+ 2, 143, :_reduce_93,
999
+ 2, 143, :_reduce_94,
1000
+ 1, 123, :_reduce_95,
1001
+ 2, 123, :_reduce_96,
1002
+ 4, 145, :_reduce_97,
973
1003
  3, 145, :_reduce_98,
974
- 2, 145, :_reduce_99,
975
- 2, 144, :_reduce_100,
976
- 4, 144, :_reduce_101,
977
- 2, 126, :_reduce_102,
978
- 5, 147, :_reduce_103,
979
- 4, 147, :_reduce_104,
980
- 0, 148, :_reduce_none,
981
- 2, 148, :_reduce_106,
982
- 4, 148, :_reduce_107,
983
- 3, 148, :_reduce_108,
984
- 6, 127, :_reduce_109,
985
- 5, 127, :_reduce_110,
986
- 0, 149, :_reduce_none,
987
- 4, 149, :_reduce_112,
988
- 3, 149, :_reduce_113,
989
- 5, 125, :_reduce_114,
990
- 1, 150, :_reduce_115,
991
- 2, 150, :_reduce_116,
992
- 5, 151, :_reduce_117,
993
- 1, 152, :_reduce_none,
994
- 1, 152, :_reduce_none,
1004
+ 1, 145, :_reduce_99,
1005
+ 3, 146, :_reduce_100,
1006
+ 2, 144, :_reduce_101,
1007
+ 3, 148, :_reduce_102,
1008
+ 2, 148, :_reduce_103,
1009
+ 2, 147, :_reduce_104,
1010
+ 4, 147, :_reduce_105,
1011
+ 2, 126, :_reduce_106,
1012
+ 5, 150, :_reduce_107,
1013
+ 4, 150, :_reduce_108,
1014
+ 0, 151, :_reduce_none,
1015
+ 2, 151, :_reduce_110,
1016
+ 4, 151, :_reduce_111,
1017
+ 3, 151, :_reduce_112,
1018
+ 6, 127, :_reduce_113,
1019
+ 5, 127, :_reduce_114,
1020
+ 0, 152, :_reduce_none,
1021
+ 4, 152, :_reduce_116,
1022
+ 3, 152, :_reduce_117,
1023
+ 5, 125, :_reduce_118,
1024
+ 1, 153, :_reduce_119,
1025
+ 2, 153, :_reduce_120,
1026
+ 5, 154, :_reduce_121,
1027
+ 1, 155, :_reduce_none,
1028
+ 1, 155, :_reduce_none,
995
1029
  1, 120, :_reduce_none,
996
- 4, 120, :_reduce_121,
997
- 1, 155, :_reduce_122,
998
- 3, 155, :_reduce_123,
999
- 3, 154, :_reduce_124,
1000
- 6, 124, :_reduce_125,
1001
- 2, 124, :_reduce_126,
1002
- 3, 156, :_reduce_127,
1003
- 3, 156, :_reduce_128,
1004
- 1, 157, :_reduce_none,
1005
- 1, 157, :_reduce_none,
1006
- 0, 110, :_reduce_131,
1007
- 1, 110, :_reduce_132,
1008
- 3, 110, :_reduce_133,
1009
- 1, 159, :_reduce_none,
1010
- 1, 159, :_reduce_none,
1011
- 1, 159, :_reduce_none,
1012
- 1, 159, :_reduce_none,
1013
- 1, 159, :_reduce_none,
1014
- 1, 159, :_reduce_none,
1015
- 3, 158, :_reduce_140,
1016
- 3, 158, :_reduce_141,
1017
- 3, 158, :_reduce_142,
1018
- 6, 128, :_reduce_143,
1019
- 6, 129, :_reduce_144,
1020
- 7, 117, :_reduce_145,
1021
- 7, 117, :_reduce_146,
1022
- 1, 164, :_reduce_none,
1023
- 1, 164, :_reduce_none,
1024
- 7, 130, :_reduce_149,
1025
- 1, 165, :_reduce_150,
1026
- 1, 163, :_reduce_none,
1027
- 1, 163, :_reduce_none,
1028
- 1, 166, :_reduce_none,
1029
- 2, 166, :_reduce_154,
1030
+ 4, 120, :_reduce_125,
1031
+ 1, 158, :_reduce_126,
1032
+ 3, 158, :_reduce_127,
1033
+ 3, 157, :_reduce_128,
1034
+ 6, 124, :_reduce_129,
1035
+ 2, 124, :_reduce_130,
1036
+ 3, 159, :_reduce_131,
1037
+ 3, 159, :_reduce_132,
1038
+ 1, 160, :_reduce_none,
1039
+ 1, 160, :_reduce_none,
1040
+ 0, 110, :_reduce_135,
1041
+ 1, 110, :_reduce_136,
1042
+ 3, 110, :_reduce_137,
1043
+ 1, 162, :_reduce_none,
1044
+ 1, 162, :_reduce_none,
1045
+ 1, 162, :_reduce_none,
1046
+ 1, 162, :_reduce_none,
1047
+ 1, 162, :_reduce_none,
1048
+ 1, 162, :_reduce_none,
1049
+ 3, 161, :_reduce_144,
1050
+ 3, 161, :_reduce_145,
1051
+ 3, 161, :_reduce_146,
1052
+ 6, 128, :_reduce_147,
1053
+ 6, 129, :_reduce_148,
1054
+ 7, 117, :_reduce_149,
1055
+ 7, 117, :_reduce_150,
1030
1056
  1, 167, :_reduce_none,
1031
1057
  1, 167, :_reduce_none,
1032
- 4, 132, :_reduce_157,
1033
- 3, 132, :_reduce_158,
1034
- 7, 131, :_reduce_159,
1035
- 6, 131, :_reduce_160,
1036
- 1, 168, :_reduce_161,
1037
- 3, 168, :_reduce_162,
1038
- 1, 170, :_reduce_none,
1058
+ 7, 130, :_reduce_153,
1059
+ 1, 168, :_reduce_154,
1060
+ 1, 166, :_reduce_none,
1061
+ 1, 166, :_reduce_none,
1062
+ 1, 169, :_reduce_none,
1063
+ 2, 169, :_reduce_158,
1039
1064
  1, 170, :_reduce_none,
1040
- 1, 170, :_reduce_165,
1041
1065
  1, 170, :_reduce_none,
1042
- 1, 171, :_reduce_167,
1043
- 3, 171, :_reduce_168,
1044
- 1, 172, :_reduce_none,
1045
- 1, 172, :_reduce_none,
1046
- 1, 169, :_reduce_none,
1047
- 2, 169, :_reduce_172,
1048
- 6, 134, :_reduce_173,
1049
- 1, 161, :_reduce_none,
1050
- 1, 161, :_reduce_none,
1051
- 1, 161, :_reduce_none,
1052
- 1, 161, :_reduce_none,
1053
- 1, 161, :_reduce_none,
1054
- 1, 161, :_reduce_none,
1055
- 1, 161, :_reduce_none,
1056
- 1, 161, :_reduce_181,
1057
- 1, 162, :_reduce_182,
1058
- 2, 162, :_reduce_183,
1059
- 4, 162, :_reduce_184,
1060
- 1, 146, :_reduce_185,
1061
- 3, 146, :_reduce_186,
1066
+ 4, 132, :_reduce_161,
1067
+ 3, 132, :_reduce_162,
1068
+ 7, 131, :_reduce_163,
1069
+ 6, 131, :_reduce_164,
1070
+ 1, 171, :_reduce_165,
1071
+ 3, 171, :_reduce_166,
1072
+ 1, 173, :_reduce_none,
1062
1073
  1, 173, :_reduce_none,
1074
+ 1, 173, :_reduce_169,
1063
1075
  1, 173, :_reduce_none,
1064
- 1, 174, :_reduce_none,
1065
- 1, 174, :_reduce_none,
1066
- 3, 176, :_reduce_191,
1067
- 1, 176, :_reduce_192,
1068
- 2, 177, :_reduce_193,
1069
- 2, 175, :_reduce_194,
1070
- 1, 178, :_reduce_195,
1071
- 4, 178, :_reduce_196,
1072
- 1, 122, :_reduce_197,
1073
- 1, 135, :_reduce_198,
1074
- 1, 135, :_reduce_199,
1075
- 1, 135, :_reduce_200,
1076
- 1, 135, :_reduce_201,
1077
- 1, 135, :_reduce_202,
1078
- 1, 135, :_reduce_203,
1079
- 1, 135, :_reduce_204,
1080
- 4, 136, :_reduce_205,
1081
- 2, 136, :_reduce_206,
1082
- 4, 136, :_reduce_207,
1083
- 2, 136, :_reduce_208,
1084
- 3, 137, :_reduce_209,
1085
- 4, 137, :_reduce_210,
1086
- 2, 137, :_reduce_211,
1087
- 1, 179, :_reduce_212,
1088
- 3, 179, :_reduce_213,
1089
- 3, 180, :_reduce_214,
1090
- 1, 139, :_reduce_none,
1091
- 1, 139, :_reduce_none,
1092
- 1, 139, :_reduce_none,
1093
- 1, 181, :_reduce_218,
1094
- 1, 181, :_reduce_219,
1095
- 2, 182, :_reduce_220,
1096
- 1, 184, :_reduce_221,
1097
- 1, 186, :_reduce_222,
1098
- 1, 187, :_reduce_223,
1099
- 2, 185, :_reduce_224,
1100
- 1, 188, :_reduce_225,
1101
- 1, 189, :_reduce_226,
1102
- 2, 189, :_reduce_227,
1103
- 2, 183, :_reduce_228,
1104
- 2, 190, :_reduce_229,
1105
- 2, 190, :_reduce_230,
1106
- 3, 102, :_reduce_231,
1107
- 0, 192, :_reduce_none,
1108
- 1, 192, :_reduce_none,
1109
- 0, 191, :_reduce_234,
1110
- 2, 191, :_reduce_235,
1111
- 4, 191, :_reduce_236,
1112
- 1, 133, :_reduce_237,
1113
- 3, 133, :_reduce_238,
1114
- 5, 133, :_reduce_239,
1115
- 1, 193, :_reduce_none,
1116
- 1, 193, :_reduce_none,
1117
- 1, 140, :_reduce_242,
1118
- 1, 138, :_reduce_243,
1076
+ 1, 174, :_reduce_171,
1077
+ 3, 174, :_reduce_172,
1078
+ 1, 175, :_reduce_none,
1079
+ 1, 175, :_reduce_none,
1080
+ 1, 172, :_reduce_none,
1081
+ 2, 172, :_reduce_176,
1082
+ 6, 134, :_reduce_177,
1083
+ 1, 164, :_reduce_none,
1084
+ 1, 164, :_reduce_none,
1085
+ 1, 164, :_reduce_none,
1086
+ 1, 164, :_reduce_none,
1087
+ 1, 164, :_reduce_none,
1088
+ 1, 164, :_reduce_none,
1089
+ 1, 164, :_reduce_none,
1090
+ 1, 164, :_reduce_185,
1091
+ 1, 165, :_reduce_186,
1092
+ 2, 165, :_reduce_187,
1093
+ 4, 165, :_reduce_188,
1094
+ 1, 149, :_reduce_189,
1095
+ 3, 149, :_reduce_190,
1096
+ 1, 176, :_reduce_none,
1097
+ 1, 176, :_reduce_none,
1098
+ 1, 177, :_reduce_none,
1099
+ 1, 177, :_reduce_none,
1100
+ 3, 179, :_reduce_195,
1101
+ 1, 179, :_reduce_196,
1102
+ 2, 180, :_reduce_197,
1103
+ 2, 178, :_reduce_198,
1104
+ 1, 181, :_reduce_199,
1105
+ 4, 181, :_reduce_200,
1106
+ 4, 135, :_reduce_201,
1107
+ 5, 136, :_reduce_202,
1108
+ 7, 136, :_reduce_203,
1109
+ 1, 122, :_reduce_204,
1110
+ 1, 137, :_reduce_205,
1111
+ 1, 137, :_reduce_206,
1112
+ 1, 137, :_reduce_207,
1113
+ 1, 137, :_reduce_208,
1114
+ 1, 137, :_reduce_209,
1115
+ 1, 137, :_reduce_210,
1116
+ 4, 138, :_reduce_211,
1117
+ 2, 138, :_reduce_212,
1118
+ 4, 138, :_reduce_213,
1119
+ 2, 138, :_reduce_214,
1120
+ 3, 139, :_reduce_215,
1121
+ 4, 139, :_reduce_216,
1122
+ 2, 139, :_reduce_217,
1123
+ 1, 183, :_reduce_218,
1124
+ 3, 183, :_reduce_219,
1125
+ 3, 184, :_reduce_220,
1126
+ 1, 141, :_reduce_none,
1127
+ 1, 141, :_reduce_none,
1128
+ 1, 141, :_reduce_none,
1129
+ 1, 185, :_reduce_224,
1130
+ 1, 185, :_reduce_225,
1131
+ 2, 186, :_reduce_226,
1132
+ 1, 188, :_reduce_227,
1133
+ 1, 190, :_reduce_228,
1134
+ 1, 191, :_reduce_229,
1135
+ 2, 189, :_reduce_230,
1136
+ 1, 192, :_reduce_231,
1137
+ 1, 193, :_reduce_232,
1138
+ 2, 193, :_reduce_233,
1139
+ 2, 187, :_reduce_234,
1140
+ 2, 194, :_reduce_235,
1141
+ 2, 194, :_reduce_236,
1142
+ 3, 102, :_reduce_237,
1143
+ 0, 182, :_reduce_none,
1144
+ 1, 182, :_reduce_none,
1145
+ 0, 195, :_reduce_240,
1146
+ 2, 195, :_reduce_241,
1147
+ 4, 195, :_reduce_242,
1148
+ 1, 133, :_reduce_243,
1149
+ 3, 133, :_reduce_244,
1150
+ 5, 133, :_reduce_245,
1151
+ 1, 196, :_reduce_none,
1152
+ 1, 196, :_reduce_none,
1153
+ 1, 142, :_reduce_248,
1154
+ 1, 140, :_reduce_249,
1119
1155
  0, 114, :_reduce_none,
1120
- 1, 114, :_reduce_245,
1156
+ 1, 114, :_reduce_251,
1121
1157
  0, 113, :_reduce_none,
1122
1158
  1, 113, :_reduce_none,
1123
- 1, 160, :_reduce_none,
1124
- 1, 160, :_reduce_none,
1125
- 1, 160, :_reduce_none,
1126
- 1, 160, :_reduce_none,
1127
- 1, 160, :_reduce_none,
1128
- 1, 160, :_reduce_none,
1129
- 1, 160, :_reduce_none,
1130
- 1, 160, :_reduce_none,
1131
- 1, 160, :_reduce_none,
1132
- 1, 160, :_reduce_none,
1133
- 1, 160, :_reduce_none,
1134
- 1, 160, :_reduce_none,
1135
- 1, 160, :_reduce_none,
1136
- 1, 160, :_reduce_none,
1137
- 1, 160, :_reduce_none,
1138
- 1, 160, :_reduce_none,
1139
- 1, 160, :_reduce_none,
1140
- 1, 160, :_reduce_none,
1141
- 1, 160, :_reduce_none,
1142
- 1, 160, :_reduce_none,
1143
- 0, 153, :_reduce_268 ]
1159
+ 1, 163, :_reduce_none,
1160
+ 1, 163, :_reduce_none,
1161
+ 1, 163, :_reduce_none,
1162
+ 1, 163, :_reduce_none,
1163
+ 1, 163, :_reduce_none,
1164
+ 1, 163, :_reduce_none,
1165
+ 1, 163, :_reduce_none,
1166
+ 1, 163, :_reduce_none,
1167
+ 1, 163, :_reduce_none,
1168
+ 1, 163, :_reduce_none,
1169
+ 1, 163, :_reduce_none,
1170
+ 1, 163, :_reduce_none,
1171
+ 1, 163, :_reduce_none,
1172
+ 1, 163, :_reduce_none,
1173
+ 1, 163, :_reduce_none,
1174
+ 1, 163, :_reduce_none,
1175
+ 1, 163, :_reduce_none,
1176
+ 1, 163, :_reduce_none,
1177
+ 1, 163, :_reduce_none,
1178
+ 1, 163, :_reduce_none,
1179
+ 0, 156, :_reduce_274 ]
1144
1180
 
1145
- racc_reduce_n = 269
1181
+ racc_reduce_n = 275
1146
1182
 
1147
- racc_shift_n = 479
1183
+ racc_shift_n = 494
1148
1184
 
1149
1185
  racc_token_table = {
1150
1186
  false => 0,
@@ -1230,9 +1266,9 @@ racc_token_table = {
1230
1266
  :EPP_END => 80,
1231
1267
  :EPP_END_TRIM => 81,
1232
1268
  :FUNCTION => 82,
1233
- :PRIVATE => 83,
1234
- :ATTR => 84,
1235
- :TYPE => 85,
1269
+ :TYPE => 83,
1270
+ :PRIVATE => 84,
1271
+ :ATTR => 85,
1236
1272
  :APPLICATION_R => 86,
1237
1273
  :CONSUMES_R => 87,
1238
1274
  :PRODUCES_R => 88,
@@ -1351,9 +1387,9 @@ Racc_token_to_s_table = [
1351
1387
  "EPP_END",
1352
1388
  "EPP_END_TRIM",
1353
1389
  "FUNCTION",
1390
+ "TYPE",
1354
1391
  "PRIVATE",
1355
1392
  "ATTR",
1356
- "TYPE",
1357
1393
  "APPLICATION_R",
1358
1394
  "CONSUMES_R",
1359
1395
  "PRODUCES_R",
@@ -1403,12 +1439,15 @@ Racc_token_to_s_table = [
1403
1439
  "site_definition_expression",
1404
1440
  "epp_render_expression",
1405
1441
  "function_definition",
1442
+ "type_alias",
1443
+ "type_definition",
1406
1444
  "reserved_word",
1407
1445
  "array",
1408
1446
  "hash",
1409
1447
  "regex",
1410
1448
  "quotedtext",
1411
1449
  "type",
1450
+ "call_function_start",
1412
1451
  "lambda",
1413
1452
  "call_method_expression",
1414
1453
  "named_access",
@@ -1447,6 +1486,7 @@ Racc_token_to_s_table = [
1447
1486
  "regular_parameter",
1448
1487
  "splat_parameter",
1449
1488
  "parameter_type",
1489
+ "optional_statements",
1450
1490
  "hashpairs",
1451
1491
  "hashpair",
1452
1492
  "string",
@@ -1460,7 +1500,6 @@ Racc_token_to_s_table = [
1460
1500
  "dqtail",
1461
1501
  "sublocated_text",
1462
1502
  "epp_parameters_list",
1463
- "optional_statements",
1464
1503
  "epp_end" ]
1465
1504
 
1466
1505
  Racc_debug_parser = false
@@ -1656,7 +1695,7 @@ module_eval(<<'.,.,', 'egrammar.ra', 156)
1656
1695
  # If the attribute operations does not include +>, then the found expression
1657
1696
  # is actually a LEFT followed by LITERAL_HASH
1658
1697
  #
1659
- unless tmp = transform_resource_wo_title(val[0], val[2])
1698
+ unless tmp = transform_resource_wo_title(val[0], val[2], val[1], val[4])
1660
1699
  error val[1], "Syntax error resource body without title or hash with +>"
1661
1700
  end
1662
1701
  tmp
@@ -1944,116 +1983,134 @@ module_eval(<<'.,.,', 'egrammar.ra', 234)
1944
1983
 
1945
1984
  # reduce 81 omitted
1946
1985
 
1947
- module_eval(<<'.,.,', 'egrammar.ra', 258)
1948
- def _reduce_82(val, _values, result)
1986
+ # reduce 82 omitted
1987
+
1988
+ # reduce 83 omitted
1989
+
1990
+ module_eval(<<'.,.,', 'egrammar.ra', 260)
1991
+ def _reduce_84(val, _values, result)
1949
1992
  result = Factory.NUMBER(val[0][:value]) ; loc result, val[0]
1950
1993
  result
1951
1994
  end
1952
1995
  .,.,
1953
1996
 
1954
- module_eval(<<'.,.,', 'egrammar.ra', 259)
1955
- def _reduce_83(val, _values, result)
1997
+ module_eval(<<'.,.,', 'egrammar.ra', 261)
1998
+ def _reduce_85(val, _values, result)
1956
1999
  result = Factory.literal(val[0][:value]) ; loc result, val[0]
1957
2000
  result
1958
2001
  end
1959
2002
  .,.,
1960
2003
 
1961
- module_eval(<<'.,.,', 'egrammar.ra', 260)
1962
- def _reduce_84(val, _values, result)
2004
+ module_eval(<<'.,.,', 'egrammar.ra', 262)
2005
+ def _reduce_86(val, _values, result)
1963
2006
  result = Factory.literal(:default) ; loc result, val[0]
1964
2007
  result
1965
2008
  end
1966
2009
  .,.,
1967
2010
 
1968
- module_eval(<<'.,.,', 'egrammar.ra', 261)
1969
- def _reduce_85(val, _values, result)
2011
+ module_eval(<<'.,.,', 'egrammar.ra', 263)
2012
+ def _reduce_87(val, _values, result)
1970
2013
  result = Factory.literal(:undef) ; loc result, val[0]
1971
2014
  result
1972
2015
  end
1973
2016
  .,.,
1974
2017
 
1975
- module_eval(<<'.,.,', 'egrammar.ra', 262)
1976
- def _reduce_86(val, _values, result)
2018
+ module_eval(<<'.,.,', 'egrammar.ra', 264)
2019
+ def _reduce_88(val, _values, result)
1977
2020
  result = Factory.QNAME_OR_NUMBER(val[0][:value]) ; loc result, val[0]
1978
2021
  result
1979
2022
  end
1980
2023
  .,.,
1981
2024
 
1982
- module_eval(<<'.,.,', 'egrammar.ra', 271)
1983
- def _reduce_87(val, _values, result)
1984
- result = Factory.CALL_NAMED(val[0], true, val[2])
1985
- loc result, val[0], val[4]
2025
+ module_eval(<<'.,.,', 'egrammar.ra', 273)
2026
+ def _reduce_89(val, _values, result)
2027
+ result = Factory.CALL_NAMED(val[0], true, val[1])
2028
+ loc result, val[0], val[3]
1986
2029
 
1987
2030
  result
1988
2031
  end
1989
2032
  .,.,
1990
2033
 
1991
- module_eval(<<'.,.,', 'egrammar.ra', 275)
1992
- def _reduce_88(val, _values, result)
2034
+ module_eval(<<'.,.,', 'egrammar.ra', 277)
2035
+ def _reduce_90(val, _values, result)
1993
2036
  result = Factory.CALL_NAMED(val[0], true, [])
1994
- loc result, val[0], val[2]
2037
+ loc result, val[0], val[1]
1995
2038
 
1996
2039
  result
1997
2040
  end
1998
2041
  .,.,
1999
2042
 
2000
- module_eval(<<'.,.,', 'egrammar.ra', 279)
2001
- def _reduce_89(val, _values, result)
2002
- result = Factory.CALL_NAMED(val[0], true, val[2])
2043
+ module_eval(<<'.,.,', 'egrammar.ra', 281)
2044
+ def _reduce_91(val, _values, result)
2045
+ result = Factory.CALL_NAMED(val[0], true, val[1])
2003
2046
  loc result, val[0], val[4]
2004
- result.lambda = val[5]
2047
+ result.lambda = val[4]
2005
2048
 
2006
2049
  result
2007
2050
  end
2008
2051
  .,.,
2009
2052
 
2010
- module_eval(<<'.,.,', 'egrammar.ra', 284)
2011
- def _reduce_90(val, _values, result)
2053
+ module_eval(<<'.,.,', 'egrammar.ra', 286)
2054
+ def _reduce_92(val, _values, result)
2012
2055
  result = Factory.CALL_NAMED(val[0], true, [])
2013
2056
  loc result, val[0], val[2]
2014
- result.lambda = val[3]
2057
+ result.lambda = val[2]
2015
2058
 
2016
2059
  result
2017
2060
  end
2018
2061
  .,.,
2019
2062
 
2020
2063
  module_eval(<<'.,.,', 'egrammar.ra', 292)
2021
- def _reduce_91(val, _values, result)
2064
+ def _reduce_93(val, _values, result)
2022
2065
  result = val[0]
2023
2066
  result
2024
2067
  end
2025
2068
  .,.,
2026
2069
 
2027
2070
  module_eval(<<'.,.,', 'egrammar.ra', 293)
2028
- def _reduce_92(val, _values, result)
2071
+ def _reduce_94(val, _values, result)
2072
+ result = Factory.QNAME(val[0][:value]); loc result, val[0]
2073
+ result
2074
+ end
2075
+ .,.,
2076
+
2077
+ module_eval(<<'.,.,', 'egrammar.ra', 298)
2078
+ def _reduce_95(val, _values, result)
2079
+ result = val[0]
2080
+ result
2081
+ end
2082
+ .,.,
2083
+
2084
+ module_eval(<<'.,.,', 'egrammar.ra', 299)
2085
+ def _reduce_96(val, _values, result)
2029
2086
  result = val[0]; val[0].lambda = val[1]
2030
2087
  result
2031
2088
  end
2032
2089
  .,.,
2033
2090
 
2034
- module_eval(<<'.,.,', 'egrammar.ra', 296)
2035
- def _reduce_93(val, _values, result)
2091
+ module_eval(<<'.,.,', 'egrammar.ra', 302)
2092
+ def _reduce_97(val, _values, result)
2036
2093
  result = Factory.CALL_METHOD(val[0], val[2]); loc result, val[1], val[3]
2037
2094
  result
2038
2095
  end
2039
2096
  .,.,
2040
2097
 
2041
- module_eval(<<'.,.,', 'egrammar.ra', 297)
2042
- def _reduce_94(val, _values, result)
2098
+ module_eval(<<'.,.,', 'egrammar.ra', 303)
2099
+ def _reduce_98(val, _values, result)
2043
2100
  result = Factory.CALL_METHOD(val[0], []); loc result, val[1], val[3]
2044
2101
  result
2045
2102
  end
2046
2103
  .,.,
2047
2104
 
2048
- module_eval(<<'.,.,', 'egrammar.ra', 298)
2049
- def _reduce_95(val, _values, result)
2105
+ module_eval(<<'.,.,', 'egrammar.ra', 304)
2106
+ def _reduce_99(val, _values, result)
2050
2107
  result = Factory.CALL_METHOD(val[0], []); loc result, val[0]
2051
2108
  result
2052
2109
  end
2053
2110
  .,.,
2054
2111
 
2055
- module_eval(<<'.,.,', 'egrammar.ra', 302)
2056
- def _reduce_96(val, _values, result)
2112
+ module_eval(<<'.,.,', 'egrammar.ra', 308)
2113
+ def _reduce_100(val, _values, result)
2057
2114
  result = val[0].dot(Factory.fqn(val[2][:value]))
2058
2115
  loc result, val[1], val[2]
2059
2116
 
@@ -2061,8 +2118,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 302)
2061
2118
  end
2062
2119
  .,.,
2063
2120
 
2064
- module_eval(<<'.,.,', 'egrammar.ra', 310)
2065
- def _reduce_97(val, _values, result)
2121
+ module_eval(<<'.,.,', 'egrammar.ra', 316)
2122
+ def _reduce_101(val, _values, result)
2066
2123
  result = Factory.LAMBDA(val[0][:value], val[1][:value])
2067
2124
  loc result, val[0][:start], val[1][:end]
2068
2125
 
@@ -2070,36 +2127,36 @@ module_eval(<<'.,.,', 'egrammar.ra', 310)
2070
2127
  end
2071
2128
  .,.,
2072
2129
 
2073
- module_eval(<<'.,.,', 'egrammar.ra', 315)
2074
- def _reduce_98(val, _values, result)
2130
+ module_eval(<<'.,.,', 'egrammar.ra', 321)
2131
+ def _reduce_102(val, _values, result)
2075
2132
  result = {:end => val[2], :value =>val[1] }
2076
2133
  result
2077
2134
  end
2078
2135
  .,.,
2079
2136
 
2080
- module_eval(<<'.,.,', 'egrammar.ra', 316)
2081
- def _reduce_99(val, _values, result)
2137
+ module_eval(<<'.,.,', 'egrammar.ra', 322)
2138
+ def _reduce_103(val, _values, result)
2082
2139
  result = {:end => val[1], :value => nil }
2083
2140
  result
2084
2141
  end
2085
2142
  .,.,
2086
2143
 
2087
- module_eval(<<'.,.,', 'egrammar.ra', 320)
2088
- def _reduce_100(val, _values, result)
2144
+ module_eval(<<'.,.,', 'egrammar.ra', 326)
2145
+ def _reduce_104(val, _values, result)
2089
2146
  result = {:start => val[0], :value => [] }
2090
2147
  result
2091
2148
  end
2092
2149
  .,.,
2093
2150
 
2094
- module_eval(<<'.,.,', 'egrammar.ra', 321)
2095
- def _reduce_101(val, _values, result)
2151
+ module_eval(<<'.,.,', 'egrammar.ra', 327)
2152
+ def _reduce_105(val, _values, result)
2096
2153
  result = {:start => val[0], :value => val[1] }
2097
2154
  result
2098
2155
  end
2099
2156
  .,.,
2100
2157
 
2101
- module_eval(<<'.,.,', 'egrammar.ra', 329)
2102
- def _reduce_102(val, _values, result)
2158
+ module_eval(<<'.,.,', 'egrammar.ra', 335)
2159
+ def _reduce_106(val, _values, result)
2103
2160
  result = val[1]
2104
2161
  loc(result, val[0], val[1])
2105
2162
 
@@ -2107,8 +2164,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 329)
2107
2164
  end
2108
2165
  .,.,
2109
2166
 
2110
- module_eval(<<'.,.,', 'egrammar.ra', 336)
2111
- def _reduce_103(val, _values, result)
2167
+ module_eval(<<'.,.,', 'egrammar.ra', 342)
2168
+ def _reduce_107(val, _values, result)
2112
2169
  result = Factory.IF(val[0], Factory.block_or_expression(*val[2]), val[4])
2113
2170
  loc(result, val[0], (val[4] ? val[4] : val[3]))
2114
2171
 
@@ -2116,8 +2173,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 336)
2116
2173
  end
2117
2174
  .,.,
2118
2175
 
2119
- module_eval(<<'.,.,', 'egrammar.ra', 340)
2120
- def _reduce_104(val, _values, result)
2176
+ module_eval(<<'.,.,', 'egrammar.ra', 346)
2177
+ def _reduce_108(val, _values, result)
2121
2178
  result = Factory.IF(val[0], nil, val[3])
2122
2179
  loc(result, val[0], (val[3] ? val[3] : val[2]))
2123
2180
 
@@ -2125,10 +2182,10 @@ module_eval(<<'.,.,', 'egrammar.ra', 340)
2125
2182
  end
2126
2183
  .,.,
2127
2184
 
2128
- # reduce 105 omitted
2185
+ # reduce 109 omitted
2129
2186
 
2130
- module_eval(<<'.,.,', 'egrammar.ra', 348)
2131
- def _reduce_106(val, _values, result)
2187
+ module_eval(<<'.,.,', 'egrammar.ra', 354)
2188
+ def _reduce_110(val, _values, result)
2132
2189
  result = val[1]
2133
2190
  loc(result, val[0], val[1])
2134
2191
 
@@ -2136,8 +2193,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 348)
2136
2193
  end
2137
2194
  .,.,
2138
2195
 
2139
- module_eval(<<'.,.,', 'egrammar.ra', 352)
2140
- def _reduce_107(val, _values, result)
2196
+ module_eval(<<'.,.,', 'egrammar.ra', 358)
2197
+ def _reduce_111(val, _values, result)
2141
2198
  result = Factory.block_or_expression(*val[2])
2142
2199
  loc result, val[0], val[3]
2143
2200
 
@@ -2145,16 +2202,16 @@ module_eval(<<'.,.,', 'egrammar.ra', 352)
2145
2202
  end
2146
2203
  .,.,
2147
2204
 
2148
- module_eval(<<'.,.,', 'egrammar.ra', 356)
2149
- def _reduce_108(val, _values, result)
2205
+ module_eval(<<'.,.,', 'egrammar.ra', 362)
2206
+ def _reduce_112(val, _values, result)
2150
2207
  result = nil # don't think a nop is needed here either
2151
2208
 
2152
2209
  result
2153
2210
  end
2154
2211
  .,.,
2155
2212
 
2156
- module_eval(<<'.,.,', 'egrammar.ra', 363)
2157
- def _reduce_109(val, _values, result)
2213
+ module_eval(<<'.,.,', 'egrammar.ra', 369)
2214
+ def _reduce_113(val, _values, result)
2158
2215
  result = Factory.UNLESS(val[1], Factory.block_or_expression(*val[3]), val[5])
2159
2216
  loc result, val[0], val[4]
2160
2217
 
@@ -2162,8 +2219,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 363)
2162
2219
  end
2163
2220
  .,.,
2164
2221
 
2165
- module_eval(<<'.,.,', 'egrammar.ra', 367)
2166
- def _reduce_110(val, _values, result)
2222
+ module_eval(<<'.,.,', 'egrammar.ra', 373)
2223
+ def _reduce_114(val, _values, result)
2167
2224
  result = Factory.UNLESS(val[1], nil, val[4])
2168
2225
  loc result, val[0], val[4]
2169
2226
 
@@ -2171,10 +2228,10 @@ module_eval(<<'.,.,', 'egrammar.ra', 367)
2171
2228
  end
2172
2229
  .,.,
2173
2230
 
2174
- # reduce 111 omitted
2231
+ # reduce 115 omitted
2175
2232
 
2176
- module_eval(<<'.,.,', 'egrammar.ra', 377)
2177
- def _reduce_112(val, _values, result)
2233
+ module_eval(<<'.,.,', 'egrammar.ra', 383)
2234
+ def _reduce_116(val, _values, result)
2178
2235
  result = Factory.block_or_expression(*val[2])
2179
2236
  loc result, val[0], val[3]
2180
2237
 
@@ -2182,16 +2239,16 @@ module_eval(<<'.,.,', 'egrammar.ra', 377)
2182
2239
  end
2183
2240
  .,.,
2184
2241
 
2185
- module_eval(<<'.,.,', 'egrammar.ra', 381)
2186
- def _reduce_113(val, _values, result)
2242
+ module_eval(<<'.,.,', 'egrammar.ra', 387)
2243
+ def _reduce_117(val, _values, result)
2187
2244
  result = nil # don't think a nop is needed here either
2188
2245
 
2189
2246
  result
2190
2247
  end
2191
2248
  .,.,
2192
2249
 
2193
- module_eval(<<'.,.,', 'egrammar.ra', 388)
2194
- def _reduce_114(val, _values, result)
2250
+ module_eval(<<'.,.,', 'egrammar.ra', 394)
2251
+ def _reduce_118(val, _values, result)
2195
2252
  result = Factory.CASE(val[1], *val[3])
2196
2253
  loc result, val[0], val[4]
2197
2254
 
@@ -2199,65 +2256,65 @@ module_eval(<<'.,.,', 'egrammar.ra', 388)
2199
2256
  end
2200
2257
  .,.,
2201
2258
 
2202
- module_eval(<<'.,.,', 'egrammar.ra', 394)
2203
- def _reduce_115(val, _values, result)
2259
+ module_eval(<<'.,.,', 'egrammar.ra', 400)
2260
+ def _reduce_119(val, _values, result)
2204
2261
  result = [val[0]]
2205
2262
  result
2206
2263
  end
2207
2264
  .,.,
2208
2265
 
2209
- module_eval(<<'.,.,', 'egrammar.ra', 395)
2210
- def _reduce_116(val, _values, result)
2266
+ module_eval(<<'.,.,', 'egrammar.ra', 401)
2267
+ def _reduce_120(val, _values, result)
2211
2268
  result = val[0].push val[1]
2212
2269
  result
2213
2270
  end
2214
2271
  .,.,
2215
2272
 
2216
- module_eval(<<'.,.,', 'egrammar.ra', 400)
2217
- def _reduce_117(val, _values, result)
2273
+ module_eval(<<'.,.,', 'egrammar.ra', 406)
2274
+ def _reduce_121(val, _values, result)
2218
2275
  result = Factory.WHEN(val[0], val[3]); loc result, val[1], val[4]
2219
2276
 
2220
2277
  result
2221
2278
  end
2222
2279
  .,.,
2223
2280
 
2224
- # reduce 118 omitted
2281
+ # reduce 122 omitted
2225
2282
 
2226
- # reduce 119 omitted
2283
+ # reduce 123 omitted
2227
2284
 
2228
- # reduce 120 omitted
2285
+ # reduce 124 omitted
2229
2286
 
2230
- module_eval(<<'.,.,', 'egrammar.ra', 416)
2231
- def _reduce_121(val, _values, result)
2287
+ module_eval(<<'.,.,', 'egrammar.ra', 422)
2288
+ def _reduce_125(val, _values, result)
2232
2289
  result = val[1]
2233
2290
 
2234
2291
  result
2235
2292
  end
2236
2293
  .,.,
2237
2294
 
2238
- module_eval(<<'.,.,', 'egrammar.ra', 421)
2239
- def _reduce_122(val, _values, result)
2295
+ module_eval(<<'.,.,', 'egrammar.ra', 427)
2296
+ def _reduce_126(val, _values, result)
2240
2297
  result = [val[0]]
2241
2298
  result
2242
2299
  end
2243
2300
  .,.,
2244
2301
 
2245
- module_eval(<<'.,.,', 'egrammar.ra', 422)
2246
- def _reduce_123(val, _values, result)
2302
+ module_eval(<<'.,.,', 'egrammar.ra', 428)
2303
+ def _reduce_127(val, _values, result)
2247
2304
  result = val[0].push val[2]
2248
2305
  result
2249
2306
  end
2250
2307
  .,.,
2251
2308
 
2252
- module_eval(<<'.,.,', 'egrammar.ra', 427)
2253
- def _reduce_124(val, _values, result)
2309
+ module_eval(<<'.,.,', 'egrammar.ra', 433)
2310
+ def _reduce_128(val, _values, result)
2254
2311
  result = Factory.MAP(val[0], val[2]) ; loc result, val[1]
2255
2312
  result
2256
2313
  end
2257
2314
  .,.,
2258
2315
 
2259
- module_eval(<<'.,.,', 'egrammar.ra', 437)
2260
- def _reduce_125(val, _values, result)
2316
+ module_eval(<<'.,.,', 'egrammar.ra', 443)
2317
+ def _reduce_129(val, _values, result)
2261
2318
  result = Factory.COLLECT(val[0], val[1], val[3])
2262
2319
  loc result, val[0], val[5]
2263
2320
 
@@ -2265,8 +2322,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 437)
2265
2322
  end
2266
2323
  .,.,
2267
2324
 
2268
- module_eval(<<'.,.,', 'egrammar.ra', 441)
2269
- def _reduce_126(val, _values, result)
2325
+ module_eval(<<'.,.,', 'egrammar.ra', 447)
2326
+ def _reduce_130(val, _values, result)
2270
2327
  result = Factory.COLLECT(val[0], val[1], [])
2271
2328
  loc result, val[0], val[1]
2272
2329
 
@@ -2274,59 +2331,59 @@ module_eval(<<'.,.,', 'egrammar.ra', 441)
2274
2331
  end
2275
2332
  .,.,
2276
2333
 
2277
- module_eval(<<'.,.,', 'egrammar.ra', 446)
2278
- def _reduce_127(val, _values, result)
2334
+ module_eval(<<'.,.,', 'egrammar.ra', 452)
2335
+ def _reduce_131(val, _values, result)
2279
2336
  result = Factory.VIRTUAL_QUERY(val[1]) ; loc result, val[0], val[2]
2280
2337
  result
2281
2338
  end
2282
2339
  .,.,
2283
2340
 
2284
- module_eval(<<'.,.,', 'egrammar.ra', 447)
2285
- def _reduce_128(val, _values, result)
2341
+ module_eval(<<'.,.,', 'egrammar.ra', 453)
2342
+ def _reduce_132(val, _values, result)
2286
2343
  result = Factory.EXPORTED_QUERY(val[1]) ; loc result, val[0], val[2]
2287
2344
  result
2288
2345
  end
2289
2346
  .,.,
2290
2347
 
2291
- # reduce 129 omitted
2348
+ # reduce 133 omitted
2292
2349
 
2293
- # reduce 130 omitted
2350
+ # reduce 134 omitted
2294
2351
 
2295
- module_eval(<<'.,.,', 'egrammar.ra', 456)
2296
- def _reduce_131(val, _values, result)
2352
+ module_eval(<<'.,.,', 'egrammar.ra', 462)
2353
+ def _reduce_135(val, _values, result)
2297
2354
  result = []
2298
2355
  result
2299
2356
  end
2300
2357
  .,.,
2301
2358
 
2302
- module_eval(<<'.,.,', 'egrammar.ra', 457)
2303
- def _reduce_132(val, _values, result)
2359
+ module_eval(<<'.,.,', 'egrammar.ra', 463)
2360
+ def _reduce_136(val, _values, result)
2304
2361
  result = [val[0]]
2305
2362
  result
2306
2363
  end
2307
2364
  .,.,
2308
2365
 
2309
- module_eval(<<'.,.,', 'egrammar.ra', 458)
2310
- def _reduce_133(val, _values, result)
2366
+ module_eval(<<'.,.,', 'egrammar.ra', 464)
2367
+ def _reduce_137(val, _values, result)
2311
2368
  result = val[0].push(val[2])
2312
2369
  result
2313
2370
  end
2314
2371
  .,.,
2315
2372
 
2316
- # reduce 134 omitted
2373
+ # reduce 138 omitted
2317
2374
 
2318
- # reduce 135 omitted
2375
+ # reduce 139 omitted
2319
2376
 
2320
- # reduce 136 omitted
2377
+ # reduce 140 omitted
2321
2378
 
2322
- # reduce 137 omitted
2379
+ # reduce 141 omitted
2323
2380
 
2324
- # reduce 138 omitted
2381
+ # reduce 142 omitted
2325
2382
 
2326
- # reduce 139 omitted
2383
+ # reduce 143 omitted
2327
2384
 
2328
- module_eval(<<'.,.,', 'egrammar.ra', 477)
2329
- def _reduce_140(val, _values, result)
2385
+ module_eval(<<'.,.,', 'egrammar.ra', 483)
2386
+ def _reduce_144(val, _values, result)
2330
2387
  result = Factory.ATTRIBUTE_OP(val[0][:value], :'=>', val[2])
2331
2388
  loc result, val[0], val[2]
2332
2389
 
@@ -2334,8 +2391,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 477)
2334
2391
  end
2335
2392
  .,.,
2336
2393
 
2337
- module_eval(<<'.,.,', 'egrammar.ra', 481)
2338
- def _reduce_141(val, _values, result)
2394
+ module_eval(<<'.,.,', 'egrammar.ra', 487)
2395
+ def _reduce_145(val, _values, result)
2339
2396
  result = Factory.ATTRIBUTE_OP(val[0][:value], :'+>', val[2])
2340
2397
  loc result, val[0], val[2]
2341
2398
 
@@ -2343,16 +2400,16 @@ module_eval(<<'.,.,', 'egrammar.ra', 481)
2343
2400
  end
2344
2401
  .,.,
2345
2402
 
2346
- module_eval(<<'.,.,', 'egrammar.ra', 485)
2347
- def _reduce_142(val, _values, result)
2403
+ module_eval(<<'.,.,', 'egrammar.ra', 491)
2404
+ def _reduce_146(val, _values, result)
2348
2405
  result = Factory.ATTRIBUTES_OP(val[2]) ; loc result, val[0], val[2]
2349
2406
 
2350
2407
  result
2351
2408
  end
2352
2409
  .,.,
2353
2410
 
2354
- module_eval(<<'.,.,', 'egrammar.ra', 494)
2355
- def _reduce_143(val, _values, result)
2411
+ module_eval(<<'.,.,', 'egrammar.ra', 500)
2412
+ def _reduce_147(val, _values, result)
2356
2413
  result = add_definition(Factory.DEFINITION(classname(val[1][:value]), val[2], val[4]))
2357
2414
  loc result, val[0], val[5]
2358
2415
  # New lexer does not keep track of this, this is done in validation
@@ -2364,8 +2421,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 494)
2364
2421
  end
2365
2422
  .,.,
2366
2423
 
2367
- module_eval(<<'.,.,', 'egrammar.ra', 505)
2368
- def _reduce_144(val, _values, result)
2424
+ module_eval(<<'.,.,', 'egrammar.ra', 511)
2425
+ def _reduce_148(val, _values, result)
2369
2426
  result = add_definition(Factory.APPLICATION(classname(val[1][:value]), val[2], val[4]))
2370
2427
  loc result, val[0], val[5]
2371
2428
 
@@ -2373,8 +2430,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 505)
2373
2430
  end
2374
2431
  .,.,
2375
2432
 
2376
- module_eval(<<'.,.,', 'egrammar.ra', 511)
2377
- def _reduce_145(val, _values, result)
2433
+ module_eval(<<'.,.,', 'egrammar.ra', 517)
2434
+ def _reduce_149(val, _values, result)
2378
2435
  result = Factory.CAPABILITY_MAPPING(val[1][:value],
2379
2436
  Factory.QNAME(classname(val[0][:value])),
2380
2437
  classname(val[2][:value]), val[4])
@@ -2385,8 +2442,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 511)
2385
2442
  end
2386
2443
  .,.,
2387
2444
 
2388
- module_eval(<<'.,.,', 'egrammar.ra', 518)
2389
- def _reduce_146(val, _values, result)
2445
+ module_eval(<<'.,.,', 'egrammar.ra', 524)
2446
+ def _reduce_150(val, _values, result)
2390
2447
  result = Factory.CAPABILITY_MAPPING(val[1][:value],
2391
2448
  val[0],
2392
2449
  classname(val[2][:value]), val[4])
@@ -2397,12 +2454,12 @@ module_eval(<<'.,.,', 'egrammar.ra', 518)
2397
2454
  end
2398
2455
  .,.,
2399
2456
 
2400
- # reduce 147 omitted
2457
+ # reduce 151 omitted
2401
2458
 
2402
- # reduce 148 omitted
2459
+ # reduce 152 omitted
2403
2460
 
2404
- module_eval(<<'.,.,', 'egrammar.ra', 535)
2405
- def _reduce_149(val, _values, result)
2461
+ module_eval(<<'.,.,', 'egrammar.ra', 541)
2462
+ def _reduce_153(val, _values, result)
2406
2463
  # Remove this class' name from the namestack as all nested classes have been parsed
2407
2464
  namepop
2408
2465
  result = add_definition(Factory.HOSTCLASS(classname(val[1][:value]), val[2], token_text(val[3]), val[5]))
@@ -2412,32 +2469,32 @@ module_eval(<<'.,.,', 'egrammar.ra', 535)
2412
2469
  end
2413
2470
  .,.,
2414
2471
 
2415
- module_eval(<<'.,.,', 'egrammar.ra', 545)
2416
- def _reduce_150(val, _values, result)
2472
+ module_eval(<<'.,.,', 'egrammar.ra', 551)
2473
+ def _reduce_154(val, _values, result)
2417
2474
  namestack(val[0][:value]) ; result = val[0]
2418
2475
  result
2419
2476
  end
2420
2477
  .,.,
2421
2478
 
2422
- # reduce 151 omitted
2479
+ # reduce 155 omitted
2423
2480
 
2424
- # reduce 152 omitted
2481
+ # reduce 156 omitted
2425
2482
 
2426
- # reduce 153 omitted
2483
+ # reduce 157 omitted
2427
2484
 
2428
- module_eval(<<'.,.,', 'egrammar.ra', 554)
2429
- def _reduce_154(val, _values, result)
2485
+ module_eval(<<'.,.,', 'egrammar.ra', 560)
2486
+ def _reduce_158(val, _values, result)
2430
2487
  result = val[1]
2431
2488
  result
2432
2489
  end
2433
2490
  .,.,
2434
2491
 
2435
- # reduce 155 omitted
2492
+ # reduce 159 omitted
2436
2493
 
2437
- # reduce 156 omitted
2494
+ # reduce 160 omitted
2438
2495
 
2439
- module_eval(<<'.,.,', 'egrammar.ra', 571)
2440
- def _reduce_157(val, _values, result)
2496
+ module_eval(<<'.,.,', 'egrammar.ra', 577)
2497
+ def _reduce_161(val, _values, result)
2441
2498
  result = add_definition(Factory.SITE(val[2]))
2442
2499
  loc result, val[0], val[3]
2443
2500
 
@@ -2445,8 +2502,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 571)
2445
2502
  end
2446
2503
  .,.,
2447
2504
 
2448
- module_eval(<<'.,.,', 'egrammar.ra', 575)
2449
- def _reduce_158(val, _values, result)
2505
+ module_eval(<<'.,.,', 'egrammar.ra', 581)
2506
+ def _reduce_162(val, _values, result)
2450
2507
  result = add_definition(Factory.SITE(nil))
2451
2508
  loc result, val[0], val[2]
2452
2509
 
@@ -2454,8 +2511,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 575)
2454
2511
  end
2455
2512
  .,.,
2456
2513
 
2457
- module_eval(<<'.,.,', 'egrammar.ra', 585)
2458
- def _reduce_159(val, _values, result)
2514
+ module_eval(<<'.,.,', 'egrammar.ra', 591)
2515
+ def _reduce_163(val, _values, result)
2459
2516
  result = add_definition(Factory.NODE(val[1], val[3], val[5]))
2460
2517
  loc result, val[0], val[6]
2461
2518
 
@@ -2463,8 +2520,8 @@ module_eval(<<'.,.,', 'egrammar.ra', 585)
2463
2520
  end
2464
2521
  .,.,
2465
2522
 
2466
- module_eval(<<'.,.,', 'egrammar.ra', 589)
2467
- def _reduce_160(val, _values, result)
2523
+ module_eval(<<'.,.,', 'egrammar.ra', 595)
2524
+ def _reduce_164(val, _values, result)
2468
2525
  result = add_definition(Factory.NODE(val[1], val[3], nil))
2469
2526
  loc result, val[0], val[5]
2470
2527
 
@@ -2472,62 +2529,62 @@ module_eval(<<'.,.,', 'egrammar.ra', 589)
2472
2529
  end
2473
2530
  .,.,
2474
2531
 
2475
- module_eval(<<'.,.,', 'egrammar.ra', 599)
2476
- def _reduce_161(val, _values, result)
2532
+ module_eval(<<'.,.,', 'egrammar.ra', 605)
2533
+ def _reduce_165(val, _values, result)
2477
2534
  result = [result]
2478
2535
  result
2479
2536
  end
2480
2537
  .,.,
2481
2538
 
2482
- module_eval(<<'.,.,', 'egrammar.ra', 600)
2483
- def _reduce_162(val, _values, result)
2539
+ module_eval(<<'.,.,', 'egrammar.ra', 606)
2540
+ def _reduce_166(val, _values, result)
2484
2541
  result = val[0].push(val[2])
2485
2542
  result
2486
2543
  end
2487
2544
  .,.,
2488
2545
 
2489
- # reduce 163 omitted
2546
+ # reduce 167 omitted
2490
2547
 
2491
- # reduce 164 omitted
2548
+ # reduce 168 omitted
2492
2549
 
2493
- module_eval(<<'.,.,', 'egrammar.ra', 607)
2494
- def _reduce_165(val, _values, result)
2550
+ module_eval(<<'.,.,', 'egrammar.ra', 613)
2551
+ def _reduce_169(val, _values, result)
2495
2552
  result = Factory.literal(:default); loc result, val[0]
2496
2553
  result
2497
2554
  end
2498
2555
  .,.,
2499
2556
 
2500
- # reduce 166 omitted
2557
+ # reduce 170 omitted
2501
2558
 
2502
- module_eval(<<'.,.,', 'egrammar.ra', 611)
2503
- def _reduce_167(val, _values, result)
2559
+ module_eval(<<'.,.,', 'egrammar.ra', 617)
2560
+ def _reduce_171(val, _values, result)
2504
2561
  result = Factory.literal(val[0][:value]); loc result, val[0]
2505
2562
  result
2506
2563
  end
2507
2564
  .,.,
2508
2565
 
2509
- module_eval(<<'.,.,', 'egrammar.ra', 612)
2510
- def _reduce_168(val, _values, result)
2566
+ module_eval(<<'.,.,', 'egrammar.ra', 618)
2567
+ def _reduce_172(val, _values, result)
2511
2568
  result = Factory.concat(val[0], '.', val[2][:value]); loc result, val[0], val[2]
2512
2569
  result
2513
2570
  end
2514
2571
  .,.,
2515
2572
 
2516
- # reduce 169 omitted
2573
+ # reduce 173 omitted
2517
2574
 
2518
- # reduce 170 omitted
2575
+ # reduce 174 omitted
2519
2576
 
2520
- # reduce 171 omitted
2577
+ # reduce 175 omitted
2521
2578
 
2522
- module_eval(<<'.,.,', 'egrammar.ra', 621)
2523
- def _reduce_172(val, _values, result)
2579
+ module_eval(<<'.,.,', 'egrammar.ra', 627)
2580
+ def _reduce_176(val, _values, result)
2524
2581
  result = val[1]
2525
2582
  result
2526
2583
  end
2527
2584
  .,.,
2528
2585
 
2529
- module_eval(<<'.,.,', 'egrammar.ra', 627)
2530
- def _reduce_173(val, _values, result)
2586
+ module_eval(<<'.,.,', 'egrammar.ra', 633)
2587
+ def _reduce_177(val, _values, result)
2531
2588
  result = add_definition(Factory.FUNCTION(val[1][:value], val[2], val[4]))
2532
2589
  loc result, val[0], val[5]
2533
2590
 
@@ -2535,427 +2592,435 @@ module_eval(<<'.,.,', 'egrammar.ra', 627)
2535
2592
  end
2536
2593
  .,.,
2537
2594
 
2538
- # reduce 174 omitted
2595
+ # reduce 178 omitted
2539
2596
 
2540
- # reduce 175 omitted
2597
+ # reduce 179 omitted
2541
2598
 
2542
- # reduce 176 omitted
2599
+ # reduce 180 omitted
2543
2600
 
2544
- # reduce 177 omitted
2601
+ # reduce 181 omitted
2545
2602
 
2546
- # reduce 178 omitted
2603
+ # reduce 182 omitted
2547
2604
 
2548
- # reduce 179 omitted
2605
+ # reduce 183 omitted
2549
2606
 
2550
- # reduce 180 omitted
2607
+ # reduce 184 omitted
2551
2608
 
2552
- module_eval(<<'.,.,', 'egrammar.ra', 642)
2553
- def _reduce_181(val, _values, result)
2609
+ module_eval(<<'.,.,', 'egrammar.ra', 648)
2610
+ def _reduce_185(val, _values, result)
2554
2611
  error val[0], "'class' is not a valid classname"
2555
2612
  result
2556
2613
  end
2557
2614
  .,.,
2558
2615
 
2559
- module_eval(<<'.,.,', 'egrammar.ra', 646)
2560
- def _reduce_182(val, _values, result)
2616
+ module_eval(<<'.,.,', 'egrammar.ra', 652)
2617
+ def _reduce_186(val, _values, result)
2561
2618
  result = []
2562
2619
  result
2563
2620
  end
2564
2621
  .,.,
2565
2622
 
2566
- module_eval(<<'.,.,', 'egrammar.ra', 647)
2567
- def _reduce_183(val, _values, result)
2623
+ module_eval(<<'.,.,', 'egrammar.ra', 653)
2624
+ def _reduce_187(val, _values, result)
2568
2625
  result = []
2569
2626
  result
2570
2627
  end
2571
2628
  .,.,
2572
2629
 
2573
- module_eval(<<'.,.,', 'egrammar.ra', 648)
2574
- def _reduce_184(val, _values, result)
2630
+ module_eval(<<'.,.,', 'egrammar.ra', 654)
2631
+ def _reduce_188(val, _values, result)
2575
2632
  result = val[1]
2576
2633
  result
2577
2634
  end
2578
2635
  .,.,
2579
2636
 
2580
- module_eval(<<'.,.,', 'egrammar.ra', 652)
2581
- def _reduce_185(val, _values, result)
2637
+ module_eval(<<'.,.,', 'egrammar.ra', 658)
2638
+ def _reduce_189(val, _values, result)
2582
2639
  result = [val[0]]
2583
2640
  result
2584
2641
  end
2585
2642
  .,.,
2586
2643
 
2587
- module_eval(<<'.,.,', 'egrammar.ra', 653)
2588
- def _reduce_186(val, _values, result)
2644
+ module_eval(<<'.,.,', 'egrammar.ra', 659)
2645
+ def _reduce_190(val, _values, result)
2589
2646
  result = val[0].push(val[2])
2590
2647
  result
2591
2648
  end
2592
2649
  .,.,
2593
2650
 
2594
- # reduce 187 omitted
2651
+ # reduce 191 omitted
2595
2652
 
2596
- # reduce 188 omitted
2653
+ # reduce 192 omitted
2597
2654
 
2598
- # reduce 189 omitted
2655
+ # reduce 193 omitted
2599
2656
 
2600
- # reduce 190 omitted
2657
+ # reduce 194 omitted
2601
2658
 
2602
- module_eval(<<'.,.,', 'egrammar.ra', 665)
2603
- def _reduce_191(val, _values, result)
2659
+ module_eval(<<'.,.,', 'egrammar.ra', 671)
2660
+ def _reduce_195(val, _values, result)
2604
2661
  result = Factory.PARAM(val[0][:value], val[2]) ; loc result, val[0]
2605
2662
  result
2606
2663
  end
2607
2664
  .,.,
2608
2665
 
2609
- module_eval(<<'.,.,', 'egrammar.ra', 666)
2610
- def _reduce_192(val, _values, result)
2666
+ module_eval(<<'.,.,', 'egrammar.ra', 672)
2667
+ def _reduce_196(val, _values, result)
2611
2668
  result = Factory.PARAM(val[0][:value]); loc result, val[0]
2612
2669
  result
2613
2670
  end
2614
2671
  .,.,
2615
2672
 
2616
- module_eval(<<'.,.,', 'egrammar.ra', 669)
2617
- def _reduce_193(val, _values, result)
2673
+ module_eval(<<'.,.,', 'egrammar.ra', 675)
2674
+ def _reduce_197(val, _values, result)
2618
2675
  result = val[1]; val[1].captures_rest()
2619
2676
  result
2620
2677
  end
2621
2678
  .,.,
2622
2679
 
2623
- module_eval(<<'.,.,', 'egrammar.ra', 672)
2624
- def _reduce_194(val, _values, result)
2680
+ module_eval(<<'.,.,', 'egrammar.ra', 678)
2681
+ def _reduce_198(val, _values, result)
2625
2682
  val[1].type_expr(val[0]) ; result = val[1]
2626
2683
  result
2627
2684
  end
2628
2685
  .,.,
2629
2686
 
2630
- module_eval(<<'.,.,', 'egrammar.ra', 675)
2631
- def _reduce_195(val, _values, result)
2687
+ module_eval(<<'.,.,', 'egrammar.ra', 681)
2688
+ def _reduce_199(val, _values, result)
2632
2689
  result = val[0]
2633
2690
  result
2634
2691
  end
2635
2692
  .,.,
2636
2693
 
2637
- module_eval(<<'.,.,', 'egrammar.ra', 676)
2638
- def _reduce_196(val, _values, result)
2694
+ module_eval(<<'.,.,', 'egrammar.ra', 682)
2695
+ def _reduce_200(val, _values, result)
2639
2696
  result = val[0][*val[2]] ; loc result, val[0], val[3]
2640
2697
  result
2641
2698
  end
2642
2699
  .,.,
2643
2700
 
2644
- module_eval(<<'.,.,', 'egrammar.ra', 681)
2645
- def _reduce_197(val, _values, result)
2646
- result = Factory.fqn(val[0][:value]).var ; loc result, val[0]
2701
+ module_eval(<<'.,.,', 'egrammar.ra', 687)
2702
+ def _reduce_201(val, _values, result)
2703
+ result = add_definition(Factory.TYPE_ALIAS(val[1][:value], val[3]))
2704
+ loc(result, val[0], val[3])
2705
+
2647
2706
  result
2648
2707
  end
2649
2708
  .,.,
2650
2709
 
2651
- module_eval(<<'.,.,', 'egrammar.ra', 686)
2652
- def _reduce_198(val, _values, result)
2653
- result = Factory.RESERVED(val[0][:value]) ; loc result, val[0]
2710
+ module_eval(<<'.,.,', 'egrammar.ra', 695)
2711
+ def _reduce_202(val, _values, result)
2712
+ result = add_definition(Factory.TYPE_DEFINITION(val[1][:value], nil, val[3]))
2713
+ loc(result, val[0], val[4])
2714
+
2654
2715
  result
2655
2716
  end
2656
2717
  .,.,
2657
2718
 
2658
- module_eval(<<'.,.,', 'egrammar.ra', 687)
2659
- def _reduce_199(val, _values, result)
2719
+ module_eval(<<'.,.,', 'egrammar.ra', 699)
2720
+ def _reduce_203(val, _values, result)
2721
+ result = add_definition(Factory.TYPE_DEFINITION(val[1][:value], val[3][:value], val[5]))
2722
+ loc(result, val[0], val[6])
2723
+
2724
+ result
2725
+ end
2726
+ .,.,
2727
+
2728
+ module_eval(<<'.,.,', 'egrammar.ra', 706)
2729
+ def _reduce_204(val, _values, result)
2730
+ result = Factory.fqn(val[0][:value]).var ; loc result, val[0]
2731
+ result
2732
+ end
2733
+ .,.,
2734
+
2735
+ module_eval(<<'.,.,', 'egrammar.ra', 711)
2736
+ def _reduce_205(val, _values, result)
2660
2737
  result = Factory.RESERVED(val[0][:value]) ; loc result, val[0]
2661
2738
  result
2662
2739
  end
2663
2740
  .,.,
2664
2741
 
2665
- module_eval(<<'.,.,', 'egrammar.ra', 688)
2666
- def _reduce_200(val, _values, result)
2742
+ module_eval(<<'.,.,', 'egrammar.ra', 712)
2743
+ def _reduce_206(val, _values, result)
2667
2744
  result = Factory.RESERVED(val[0][:value]) ; loc result, val[0]
2668
2745
  result
2669
2746
  end
2670
2747
  .,.,
2671
2748
 
2672
- module_eval(<<'.,.,', 'egrammar.ra', 689)
2673
- def _reduce_201(val, _values, result)
2749
+ module_eval(<<'.,.,', 'egrammar.ra', 713)
2750
+ def _reduce_207(val, _values, result)
2674
2751
  result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0]
2675
2752
  result
2676
2753
  end
2677
2754
  .,.,
2678
2755
 
2679
- module_eval(<<'.,.,', 'egrammar.ra', 690)
2680
- def _reduce_202(val, _values, result)
2756
+ module_eval(<<'.,.,', 'egrammar.ra', 714)
2757
+ def _reduce_208(val, _values, result)
2681
2758
  result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0]
2682
2759
  result
2683
2760
  end
2684
2761
  .,.,
2685
2762
 
2686
- module_eval(<<'.,.,', 'egrammar.ra', 691)
2687
- def _reduce_203(val, _values, result)
2763
+ module_eval(<<'.,.,', 'egrammar.ra', 715)
2764
+ def _reduce_209(val, _values, result)
2688
2765
  result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0]
2689
2766
  result
2690
2767
  end
2691
2768
  .,.,
2692
2769
 
2693
- module_eval(<<'.,.,', 'egrammar.ra', 692)
2694
- def _reduce_204(val, _values, result)
2770
+ module_eval(<<'.,.,', 'egrammar.ra', 716)
2771
+ def _reduce_210(val, _values, result)
2695
2772
  result = Factory.RESERVED(val[0][:value], true) ; loc result, val[0]
2696
2773
  result
2697
2774
  end
2698
2775
  .,.,
2699
2776
 
2700
- module_eval(<<'.,.,', 'egrammar.ra', 698)
2701
- def _reduce_205(val, _values, result)
2777
+ module_eval(<<'.,.,', 'egrammar.ra', 722)
2778
+ def _reduce_211(val, _values, result)
2702
2779
  result = Factory.LIST(val[1]); loc result, val[0], val[3]
2703
2780
  result
2704
2781
  end
2705
2782
  .,.,
2706
2783
 
2707
- module_eval(<<'.,.,', 'egrammar.ra', 699)
2708
- def _reduce_206(val, _values, result)
2784
+ module_eval(<<'.,.,', 'egrammar.ra', 723)
2785
+ def _reduce_212(val, _values, result)
2709
2786
  result = Factory.literal([]) ; loc result, val[0], val[1]
2710
2787
  result
2711
2788
  end
2712
2789
  .,.,
2713
2790
 
2714
- module_eval(<<'.,.,', 'egrammar.ra', 700)
2715
- def _reduce_207(val, _values, result)
2791
+ module_eval(<<'.,.,', 'egrammar.ra', 724)
2792
+ def _reduce_213(val, _values, result)
2716
2793
  result = Factory.LIST(val[1]); loc result, val[0], val[3]
2717
2794
  result
2718
2795
  end
2719
2796
  .,.,
2720
2797
 
2721
- module_eval(<<'.,.,', 'egrammar.ra', 701)
2722
- def _reduce_208(val, _values, result)
2798
+ module_eval(<<'.,.,', 'egrammar.ra', 725)
2799
+ def _reduce_214(val, _values, result)
2723
2800
  result = Factory.literal([]) ; loc result, val[0], val[1]
2724
2801
  result
2725
2802
  end
2726
2803
  .,.,
2727
2804
 
2728
- module_eval(<<'.,.,', 'egrammar.ra', 704)
2729
- def _reduce_209(val, _values, result)
2805
+ module_eval(<<'.,.,', 'egrammar.ra', 728)
2806
+ def _reduce_215(val, _values, result)
2730
2807
  result = Factory.HASH(val[1]); loc result, val[0], val[2]
2731
2808
  result
2732
2809
  end
2733
2810
  .,.,
2734
2811
 
2735
- module_eval(<<'.,.,', 'egrammar.ra', 705)
2736
- def _reduce_210(val, _values, result)
2812
+ module_eval(<<'.,.,', 'egrammar.ra', 729)
2813
+ def _reduce_216(val, _values, result)
2737
2814
  result = Factory.HASH(val[1]); loc result, val[0], val[3]
2738
2815
  result
2739
2816
  end
2740
2817
  .,.,
2741
2818
 
2742
- module_eval(<<'.,.,', 'egrammar.ra', 706)
2743
- def _reduce_211(val, _values, result)
2819
+ module_eval(<<'.,.,', 'egrammar.ra', 730)
2820
+ def _reduce_217(val, _values, result)
2744
2821
  result = Factory.literal({}) ; loc result, val[0], val[1]
2745
2822
  result
2746
2823
  end
2747
2824
  .,.,
2748
2825
 
2749
- module_eval(<<'.,.,', 'egrammar.ra', 709)
2750
- def _reduce_212(val, _values, result)
2826
+ module_eval(<<'.,.,', 'egrammar.ra', 733)
2827
+ def _reduce_218(val, _values, result)
2751
2828
  result = [val[0]]
2752
2829
  result
2753
2830
  end
2754
2831
  .,.,
2755
2832
 
2756
- module_eval(<<'.,.,', 'egrammar.ra', 710)
2757
- def _reduce_213(val, _values, result)
2833
+ module_eval(<<'.,.,', 'egrammar.ra', 734)
2834
+ def _reduce_219(val, _values, result)
2758
2835
  result = val[0].push val[2]
2759
2836
  result
2760
2837
  end
2761
2838
  .,.,
2762
2839
 
2763
- module_eval(<<'.,.,', 'egrammar.ra', 713)
2764
- def _reduce_214(val, _values, result)
2840
+ module_eval(<<'.,.,', 'egrammar.ra', 737)
2841
+ def _reduce_220(val, _values, result)
2765
2842
  result = Factory.KEY_ENTRY(val[0], val[2]); loc result, val[1]
2766
2843
  result
2767
2844
  end
2768
2845
  .,.,
2769
2846
 
2770
- # reduce 215 omitted
2847
+ # reduce 221 omitted
2771
2848
 
2772
- # reduce 216 omitted
2849
+ # reduce 222 omitted
2773
2850
 
2774
- # reduce 217 omitted
2851
+ # reduce 223 omitted
2775
2852
 
2776
- module_eval(<<'.,.,', 'egrammar.ra', 721)
2777
- def _reduce_218(val, _values, result)
2853
+ module_eval(<<'.,.,', 'egrammar.ra', 745)
2854
+ def _reduce_224(val, _values, result)
2778
2855
  result = Factory.literal(val[0][:value]) ; loc result, val[0]
2779
2856
  result
2780
2857
  end
2781
2858
  .,.,
2782
2859
 
2783
- module_eval(<<'.,.,', 'egrammar.ra', 722)
2784
- def _reduce_219(val, _values, result)
2860
+ module_eval(<<'.,.,', 'egrammar.ra', 746)
2861
+ def _reduce_225(val, _values, result)
2785
2862
  result = Factory.literal(val[0][:value]) ; loc result, val[0]
2786
2863
  result
2787
2864
  end
2788
2865
  .,.,
2789
2866
 
2790
- module_eval(<<'.,.,', 'egrammar.ra', 724)
2791
- def _reduce_220(val, _values, result)
2867
+ module_eval(<<'.,.,', 'egrammar.ra', 748)
2868
+ def _reduce_226(val, _values, result)
2792
2869
  result = Factory.string(val[0], *val[1]) ; loc result, val[0], val[1][-1]
2793
2870
  result
2794
2871
  end
2795
2872
  .,.,
2796
2873
 
2797
- module_eval(<<'.,.,', 'egrammar.ra', 725)
2798
- def _reduce_221(val, _values, result)
2874
+ module_eval(<<'.,.,', 'egrammar.ra', 749)
2875
+ def _reduce_227(val, _values, result)
2799
2876
  result = Factory.literal(val[0][:value]); loc result, val[0]
2800
2877
  result
2801
2878
  end
2802
2879
  .,.,
2803
2880
 
2804
- module_eval(<<'.,.,', 'egrammar.ra', 726)
2805
- def _reduce_222(val, _values, result)
2881
+ module_eval(<<'.,.,', 'egrammar.ra', 750)
2882
+ def _reduce_228(val, _values, result)
2806
2883
  result = Factory.literal(val[0][:value]); loc result, val[0]
2807
2884
  result
2808
2885
  end
2809
2886
  .,.,
2810
2887
 
2811
- module_eval(<<'.,.,', 'egrammar.ra', 727)
2812
- def _reduce_223(val, _values, result)
2888
+ module_eval(<<'.,.,', 'egrammar.ra', 751)
2889
+ def _reduce_229(val, _values, result)
2813
2890
  result = Factory.literal(val[0][:value]); loc result, val[0]
2814
2891
  result
2815
2892
  end
2816
2893
  .,.,
2817
2894
 
2818
- module_eval(<<'.,.,', 'egrammar.ra', 728)
2819
- def _reduce_224(val, _values, result)
2895
+ module_eval(<<'.,.,', 'egrammar.ra', 752)
2896
+ def _reduce_230(val, _values, result)
2820
2897
  result = [val[0]] + val[1]
2821
2898
  result
2822
2899
  end
2823
2900
  .,.,
2824
2901
 
2825
- module_eval(<<'.,.,', 'egrammar.ra', 729)
2826
- def _reduce_225(val, _values, result)
2902
+ module_eval(<<'.,.,', 'egrammar.ra', 753)
2903
+ def _reduce_231(val, _values, result)
2827
2904
  result = Factory.TEXT(val[0])
2828
2905
  result
2829
2906
  end
2830
2907
  .,.,
2831
2908
 
2832
- module_eval(<<'.,.,', 'egrammar.ra', 732)
2833
- def _reduce_226(val, _values, result)
2909
+ module_eval(<<'.,.,', 'egrammar.ra', 756)
2910
+ def _reduce_232(val, _values, result)
2834
2911
  result = [val[0]]
2835
2912
  result
2836
2913
  end
2837
2914
  .,.,
2838
2915
 
2839
- module_eval(<<'.,.,', 'egrammar.ra', 733)
2840
- def _reduce_227(val, _values, result)
2916
+ module_eval(<<'.,.,', 'egrammar.ra', 757)
2917
+ def _reduce_233(val, _values, result)
2841
2918
  result = [val[0]] + val[1]
2842
2919
  result
2843
2920
  end
2844
2921
  .,.,
2845
2922
 
2846
- module_eval(<<'.,.,', 'egrammar.ra', 736)
2847
- def _reduce_228(val, _values, result)
2923
+ module_eval(<<'.,.,', 'egrammar.ra', 760)
2924
+ def _reduce_234(val, _values, result)
2848
2925
  result = Factory.HEREDOC(val[0][:value], val[1]); loc result, val[0]
2849
2926
  result
2850
2927
  end
2851
2928
  .,.,
2852
2929
 
2853
- module_eval(<<'.,.,', 'egrammar.ra', 739)
2854
- def _reduce_229(val, _values, result)
2930
+ module_eval(<<'.,.,', 'egrammar.ra', 763)
2931
+ def _reduce_235(val, _values, result)
2855
2932
  result = Factory.SUBLOCATE(val[0], val[1]); loc result, val[0]
2856
2933
  result
2857
2934
  end
2858
2935
  .,.,
2859
2936
 
2860
- module_eval(<<'.,.,', 'egrammar.ra', 740)
2861
- def _reduce_230(val, _values, result)
2937
+ module_eval(<<'.,.,', 'egrammar.ra', 764)
2938
+ def _reduce_236(val, _values, result)
2862
2939
  result = Factory.SUBLOCATE(val[0], val[1]); loc result, val[0]
2863
2940
  result
2864
2941
  end
2865
2942
  .,.,
2866
2943
 
2867
- module_eval(<<'.,.,', 'egrammar.ra', 743)
2868
- def _reduce_231(val, _values, result)
2944
+ module_eval(<<'.,.,', 'egrammar.ra', 767)
2945
+ def _reduce_237(val, _values, result)
2869
2946
  result = Factory.EPP(val[1], val[2]); loc result, val[0]
2870
2947
  result
2871
2948
  end
2872
2949
  .,.,
2873
2950
 
2874
- # reduce 232 omitted
2951
+ # reduce 238 omitted
2875
2952
 
2876
- # reduce 233 omitted
2953
+ # reduce 239 omitted
2877
2954
 
2878
- module_eval(<<'.,.,', 'egrammar.ra', 750)
2879
- def _reduce_234(val, _values, result)
2955
+ module_eval(<<'.,.,', 'egrammar.ra', 774)
2956
+ def _reduce_240(val, _values, result)
2880
2957
  result = nil
2881
2958
  result
2882
2959
  end
2883
2960
  .,.,
2884
2961
 
2885
- module_eval(<<'.,.,', 'egrammar.ra', 751)
2886
- def _reduce_235(val, _values, result)
2962
+ module_eval(<<'.,.,', 'egrammar.ra', 775)
2963
+ def _reduce_241(val, _values, result)
2887
2964
  result = []
2888
2965
  result
2889
2966
  end
2890
2967
  .,.,
2891
2968
 
2892
- module_eval(<<'.,.,', 'egrammar.ra', 752)
2893
- def _reduce_236(val, _values, result)
2969
+ module_eval(<<'.,.,', 'egrammar.ra', 776)
2970
+ def _reduce_242(val, _values, result)
2894
2971
  result = val[1]
2895
2972
  result
2896
2973
  end
2897
2974
  .,.,
2898
2975
 
2899
- module_eval(<<'.,.,', 'egrammar.ra', 755)
2900
- def _reduce_237(val, _values, result)
2976
+ module_eval(<<'.,.,', 'egrammar.ra', 779)
2977
+ def _reduce_243(val, _values, result)
2901
2978
  result = Factory.RENDER_STRING(val[0][:value]); loc result, val[0]
2902
2979
  result
2903
2980
  end
2904
2981
  .,.,
2905
2982
 
2906
- module_eval(<<'.,.,', 'egrammar.ra', 756)
2907
- def _reduce_238(val, _values, result)
2983
+ module_eval(<<'.,.,', 'egrammar.ra', 780)
2984
+ def _reduce_244(val, _values, result)
2908
2985
  result = Factory.RENDER_EXPR(val[1]); loc result, val[0], val[2]
2909
2986
  result
2910
2987
  end
2911
2988
  .,.,
2912
2989
 
2913
- module_eval(<<'.,.,', 'egrammar.ra', 757)
2914
- def _reduce_239(val, _values, result)
2990
+ module_eval(<<'.,.,', 'egrammar.ra', 781)
2991
+ def _reduce_245(val, _values, result)
2915
2992
  result = Factory.RENDER_EXPR(Factory.block_or_expression(*val[2])); loc result, val[0], val[4]
2916
2993
  result
2917
2994
  end
2918
2995
  .,.,
2919
2996
 
2920
- # reduce 240 omitted
2997
+ # reduce 246 omitted
2921
2998
 
2922
- # reduce 241 omitted
2999
+ # reduce 247 omitted
2923
3000
 
2924
- module_eval(<<'.,.,', 'egrammar.ra', 763)
2925
- def _reduce_242(val, _values, result)
3001
+ module_eval(<<'.,.,', 'egrammar.ra', 787)
3002
+ def _reduce_248(val, _values, result)
2926
3003
  result = Factory.QREF(val[0][:value]) ; loc result, val[0]
2927
3004
  result
2928
3005
  end
2929
3006
  .,.,
2930
3007
 
2931
- module_eval(<<'.,.,', 'egrammar.ra', 766)
2932
- def _reduce_243(val, _values, result)
3008
+ module_eval(<<'.,.,', 'egrammar.ra', 790)
3009
+ def _reduce_249(val, _values, result)
2933
3010
  result = Factory.literal(val[0][:value]); loc result, val[0]
2934
3011
  result
2935
3012
  end
2936
3013
  .,.,
2937
3014
 
2938
- # reduce 244 omitted
3015
+ # reduce 250 omitted
2939
3016
 
2940
- module_eval(<<'.,.,', 'egrammar.ra', 772)
2941
- def _reduce_245(val, _values, result)
3017
+ module_eval(<<'.,.,', 'egrammar.ra', 796)
3018
+ def _reduce_251(val, _values, result)
2942
3019
  result = nil
2943
3020
  result
2944
3021
  end
2945
3022
  .,.,
2946
3023
 
2947
- # reduce 246 omitted
2948
-
2949
- # reduce 247 omitted
2950
-
2951
- # reduce 248 omitted
2952
-
2953
- # reduce 249 omitted
2954
-
2955
- # reduce 250 omitted
2956
-
2957
- # reduce 251 omitted
2958
-
2959
3024
  # reduce 252 omitted
2960
3025
 
2961
3026
  # reduce 253 omitted
@@ -2988,8 +3053,20 @@ module_eval(<<'.,.,', 'egrammar.ra', 772)
2988
3053
 
2989
3054
  # reduce 267 omitted
2990
3055
 
2991
- module_eval(<<'.,.,', 'egrammar.ra', 801)
2992
- def _reduce_268(val, _values, result)
3056
+ # reduce 268 omitted
3057
+
3058
+ # reduce 269 omitted
3059
+
3060
+ # reduce 270 omitted
3061
+
3062
+ # reduce 271 omitted
3063
+
3064
+ # reduce 272 omitted
3065
+
3066
+ # reduce 273 omitted
3067
+
3068
+ module_eval(<<'.,.,', 'egrammar.ra', 825)
3069
+ def _reduce_274(val, _values, result)
2993
3070
  result = nil
2994
3071
  result
2995
3072
  end