enclave 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (739) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +182 -0
  3. data/Rakefile +30 -0
  4. data/ext/enclave/enclave.c +390 -0
  5. data/ext/enclave/extconf.rb +33 -0
  6. data/ext/enclave/mruby/Makefile +63 -0
  7. data/ext/enclave/mruby/Rakefile +102 -0
  8. data/ext/enclave/mruby/benchmark/bm_ao_render.rb +309 -0
  9. data/ext/enclave/mruby/benchmark/bm_app_lc_fizzbuzz.rb +51 -0
  10. data/ext/enclave/mruby/benchmark/bm_fib.rb +6 -0
  11. data/ext/enclave/mruby/benchmark/bm_mandel_term.rb +34 -0
  12. data/ext/enclave/mruby/benchmark/bm_so_lists.rb +49 -0
  13. data/ext/enclave/mruby/benchmark/bm_so_mandelbrot.rb +65 -0
  14. data/ext/enclave/mruby/benchmark/vm_dispatch_bench.c +197 -0
  15. data/ext/enclave/mruby/benchmark/vm_optimization_bench.rb +513 -0
  16. data/ext/enclave/mruby/build/host/include/mrbconf.h +230 -0
  17. data/ext/enclave/mruby/build/host/include/mruby/array.h +303 -0
  18. data/ext/enclave/mruby/build/host/include/mruby/boxing_nan.h +169 -0
  19. data/ext/enclave/mruby/build/host/include/mruby/boxing_no.h +59 -0
  20. data/ext/enclave/mruby/build/host/include/mruby/boxing_word.h +248 -0
  21. data/ext/enclave/mruby/build/host/include/mruby/class.h +157 -0
  22. data/ext/enclave/mruby/build/host/include/mruby/common.h +127 -0
  23. data/ext/enclave/mruby/build/host/include/mruby/compile.h +187 -0
  24. data/ext/enclave/mruby/build/host/include/mruby/data.h +76 -0
  25. data/ext/enclave/mruby/build/host/include/mruby/debug.h +75 -0
  26. data/ext/enclave/mruby/build/host/include/mruby/dump.h +159 -0
  27. data/ext/enclave/mruby/build/host/include/mruby/endian.h +44 -0
  28. data/ext/enclave/mruby/build/host/include/mruby/error.h +168 -0
  29. data/ext/enclave/mruby/build/host/include/mruby/gc.h +77 -0
  30. data/ext/enclave/mruby/build/host/include/mruby/hash.h +234 -0
  31. data/ext/enclave/mruby/build/host/include/mruby/internal.h +278 -0
  32. data/ext/enclave/mruby/build/host/include/mruby/irep.h +142 -0
  33. data/ext/enclave/mruby/build/host/include/mruby/istruct.h +50 -0
  34. data/ext/enclave/mruby/build/host/include/mruby/khash.h +455 -0
  35. data/ext/enclave/mruby/build/host/include/mruby/mempool.h +19 -0
  36. data/ext/enclave/mruby/build/host/include/mruby/numeric.h +174 -0
  37. data/ext/enclave/mruby/build/host/include/mruby/object.h +44 -0
  38. data/ext/enclave/mruby/build/host/include/mruby/opcode.h +73 -0
  39. data/ext/enclave/mruby/build/host/include/mruby/ops.h +133 -0
  40. data/ext/enclave/mruby/build/host/include/mruby/presym/id.h +895 -0
  41. data/ext/enclave/mruby/build/host/include/mruby/presym/scanning.h +82 -0
  42. data/ext/enclave/mruby/build/host/include/mruby/presym/table.h +1787 -0
  43. data/ext/enclave/mruby/build/host/include/mruby/presym.h +65 -0
  44. data/ext/enclave/mruby/build/host/include/mruby/proc.h +184 -0
  45. data/ext/enclave/mruby/build/host/include/mruby/range.h +77 -0
  46. data/ext/enclave/mruby/build/host/include/mruby/re.h +16 -0
  47. data/ext/enclave/mruby/build/host/include/mruby/string.h +428 -0
  48. data/ext/enclave/mruby/build/host/include/mruby/throw.h +81 -0
  49. data/ext/enclave/mruby/build/host/include/mruby/value.h +471 -0
  50. data/ext/enclave/mruby/build/host/include/mruby/variable.h +108 -0
  51. data/ext/enclave/mruby/build/host/include/mruby/version.h +143 -0
  52. data/ext/enclave/mruby/build/host/include/mruby.h +1632 -0
  53. data/ext/enclave/mruby/build/host/mrbc/include/mruby/presym/id.h +281 -0
  54. data/ext/enclave/mruby/build/host/mrbc/include/mruby/presym/table.h +559 -0
  55. data/ext/enclave/mruby/build/host/mrbgems/gem_init.c +164 -0
  56. data/ext/enclave/mruby/build/host/mrbgems/mruby-array-ext/gem_init.c +650 -0
  57. data/ext/enclave/mruby/build/host/mrbgems/mruby-binding/gem_init.c +21 -0
  58. data/ext/enclave/mruby/build/host/mrbgems/mruby-catch/gem_init.c +86 -0
  59. data/ext/enclave/mruby/build/host/mrbgems/mruby-class-ext/gem_init.c +21 -0
  60. data/ext/enclave/mruby/build/host/mrbgems/mruby-compar-ext/gem_init.c +99 -0
  61. data/ext/enclave/mruby/build/host/mrbgems/mruby-complex/gem_init.c +362 -0
  62. data/ext/enclave/mruby/build/host/mrbgems/mruby-data/gem_init.c +21 -0
  63. data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-chain/gem_init.c +229 -0
  64. data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-ext/gem_init.c +1420 -0
  65. data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-lazy/gem_init.c +602 -0
  66. data/ext/enclave/mruby/build/host/mrbgems/mruby-enumerator/gem_init.c +822 -0
  67. data/ext/enclave/mruby/build/host/mrbgems/mruby-eval/gem_init.c +21 -0
  68. data/ext/enclave/mruby/build/host/mrbgems/mruby-fiber/gem_init.c +21 -0
  69. data/ext/enclave/mruby/build/host/mrbgems/mruby-hash-ext/gem_init.c +591 -0
  70. data/ext/enclave/mruby/build/host/mrbgems/mruby-kernel-ext/gem_init.c +21 -0
  71. data/ext/enclave/mruby/build/host/mrbgems/mruby-math/gem_init.c +21 -0
  72. data/ext/enclave/mruby/build/host/mrbgems/mruby-metaprog/gem_init.c +21 -0
  73. data/ext/enclave/mruby/build/host/mrbgems/mruby-method/gem_init.c +153 -0
  74. data/ext/enclave/mruby/build/host/mrbgems/mruby-numeric-ext/gem_init.c +211 -0
  75. data/ext/enclave/mruby/build/host/mrbgems/mruby-object-ext/gem_init.c +94 -0
  76. data/ext/enclave/mruby/build/host/mrbgems/mruby-objectspace/gem_init.c +21 -0
  77. data/ext/enclave/mruby/build/host/mrbgems/mruby-pack/gem_init.c +21 -0
  78. data/ext/enclave/mruby/build/host/mrbgems/mruby-proc-binding/gem_init.c +21 -0
  79. data/ext/enclave/mruby/build/host/mrbgems/mruby-proc-ext/gem_init.c +237 -0
  80. data/ext/enclave/mruby/build/host/mrbgems/mruby-random/gem_init.c +21 -0
  81. data/ext/enclave/mruby/build/host/mrbgems/mruby-range-ext/gem_init.c +205 -0
  82. data/ext/enclave/mruby/build/host/mrbgems/mruby-rational/gem_init.c +147 -0
  83. data/ext/enclave/mruby/build/host/mrbgems/mruby-set/gem_init.c +487 -0
  84. data/ext/enclave/mruby/build/host/mrbgems/mruby-sprintf/gem_init.c +83 -0
  85. data/ext/enclave/mruby/build/host/mrbgems/mruby-string-ext/gem_init.c +220 -0
  86. data/ext/enclave/mruby/build/host/mrbgems/mruby-struct/gem_init.c +175 -0
  87. data/ext/enclave/mruby/build/host/mrbgems/mruby-symbol-ext/gem_init.c +153 -0
  88. data/ext/enclave/mruby/build/host/mrbgems/mruby-time/gem_init.c +21 -0
  89. data/ext/enclave/mruby/build/host/mrbgems/mruby-toplevel-ext/gem_init.c +78 -0
  90. data/ext/enclave/mruby/build/host/mrblib/mrblib.c +1758 -0
  91. data/ext/enclave/mruby/build_config/ArduinoDue.rb +72 -0
  92. data/ext/enclave/mruby/build_config/IntelEdison.rb +69 -0
  93. data/ext/enclave/mruby/build_config/IntelGalileo.rb +88 -0
  94. data/ext/enclave/mruby/build_config/RX630.rb +63 -0
  95. data/ext/enclave/mruby/build_config/android_arm64_v8a.rb +11 -0
  96. data/ext/enclave/mruby/build_config/android_armeabi_v7a_neon_hard.rb +13 -0
  97. data/ext/enclave/mruby/build_config/bench.rb +11 -0
  98. data/ext/enclave/mruby/build_config/boxing.rb +19 -0
  99. data/ext/enclave/mruby/build_config/chipKITMax32.rb +68 -0
  100. data/ext/enclave/mruby/build_config/ci/gcc-clang.rb +40 -0
  101. data/ext/enclave/mruby/build_config/ci/msvc.rb +20 -0
  102. data/ext/enclave/mruby/build_config/clang-asan.rb +11 -0
  103. data/ext/enclave/mruby/build_config/cosmopolitan.rb +86 -0
  104. data/ext/enclave/mruby/build_config/cross-32bit.rb +14 -0
  105. data/ext/enclave/mruby/build_config/cross-mingw-winetest.rb +90 -0
  106. data/ext/enclave/mruby/build_config/cross-mingw.rb +14 -0
  107. data/ext/enclave/mruby/build_config/default.rb +83 -0
  108. data/ext/enclave/mruby/build_config/dreamcast_shelf.rb +81 -0
  109. data/ext/enclave/mruby/build_config/emscripten-cxx.rb +12 -0
  110. data/ext/enclave/mruby/build_config/emscripten.rb +10 -0
  111. data/ext/enclave/mruby/build_config/gameboyadvance.rb +72 -0
  112. data/ext/enclave/mruby/build_config/helpers/wine_runner.rb +71 -0
  113. data/ext/enclave/mruby/build_config/host-cxx.rb +12 -0
  114. data/ext/enclave/mruby/build_config/host-debug.rb +20 -0
  115. data/ext/enclave/mruby/build_config/host-f32.rb +14 -0
  116. data/ext/enclave/mruby/build_config/host-gprof.rb +14 -0
  117. data/ext/enclave/mruby/build_config/host-m32.rb +15 -0
  118. data/ext/enclave/mruby/build_config/host-nofloat.rb +22 -0
  119. data/ext/enclave/mruby/build_config/host-shared.rb +36 -0
  120. data/ext/enclave/mruby/build_config/i586-pc-msdosdjgpp.rb +76 -0
  121. data/ext/enclave/mruby/build_config/luckfox_pico.rb +106 -0
  122. data/ext/enclave/mruby/build_config/milkv_duo.rb +106 -0
  123. data/ext/enclave/mruby/build_config/minimal.rb +4 -0
  124. data/ext/enclave/mruby/build_config/mrbc.rb +10 -0
  125. data/ext/enclave/mruby/build_config/nintendo_switch.rb +73 -0
  126. data/ext/enclave/mruby/build_config/nintendo_wii.rb +95 -0
  127. data/ext/enclave/mruby/build_config/no-float.rb +17 -0
  128. data/ext/enclave/mruby/build_config/playstationportable.rb +78 -0
  129. data/ext/enclave/mruby/build_config/serenity.rb +26 -0
  130. data/ext/enclave/mruby/build_config.rb +9 -0
  131. data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  132. data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +23 -0
  133. data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  134. data/ext/enclave/mruby/examples/mrbgems/c_extension_example/src/example.c +23 -0
  135. data/ext/enclave/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  136. data/ext/enclave/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  137. data/ext/enclave/mruby/examples/mrbgems/cdata_extension_example/src/example.c +77 -0
  138. data/ext/enclave/mruby/examples/mrbgems/cdata_extension_example/test/example.c +7 -0
  139. data/ext/enclave/mruby/examples/mrbgems/mruby-YOUR-bigint/core/bigint.c +70 -0
  140. data/ext/enclave/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  141. data/ext/enclave/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  142. data/ext/enclave/mruby/include/mrbconf.h +230 -0
  143. data/ext/enclave/mruby/include/mruby/array.h +303 -0
  144. data/ext/enclave/mruby/include/mruby/boxing_nan.h +169 -0
  145. data/ext/enclave/mruby/include/mruby/boxing_no.h +59 -0
  146. data/ext/enclave/mruby/include/mruby/boxing_word.h +248 -0
  147. data/ext/enclave/mruby/include/mruby/class.h +157 -0
  148. data/ext/enclave/mruby/include/mruby/common.h +127 -0
  149. data/ext/enclave/mruby/include/mruby/compile.h +187 -0
  150. data/ext/enclave/mruby/include/mruby/data.h +76 -0
  151. data/ext/enclave/mruby/include/mruby/debug.h +75 -0
  152. data/ext/enclave/mruby/include/mruby/dump.h +159 -0
  153. data/ext/enclave/mruby/include/mruby/endian.h +44 -0
  154. data/ext/enclave/mruby/include/mruby/error.h +168 -0
  155. data/ext/enclave/mruby/include/mruby/gc.h +77 -0
  156. data/ext/enclave/mruby/include/mruby/hash.h +234 -0
  157. data/ext/enclave/mruby/include/mruby/internal.h +278 -0
  158. data/ext/enclave/mruby/include/mruby/irep.h +142 -0
  159. data/ext/enclave/mruby/include/mruby/istruct.h +50 -0
  160. data/ext/enclave/mruby/include/mruby/khash.h +455 -0
  161. data/ext/enclave/mruby/include/mruby/mempool.h +19 -0
  162. data/ext/enclave/mruby/include/mruby/numeric.h +174 -0
  163. data/ext/enclave/mruby/include/mruby/object.h +44 -0
  164. data/ext/enclave/mruby/include/mruby/opcode.h +73 -0
  165. data/ext/enclave/mruby/include/mruby/ops.h +133 -0
  166. data/ext/enclave/mruby/include/mruby/presym/scanning.h +82 -0
  167. data/ext/enclave/mruby/include/mruby/presym.h +65 -0
  168. data/ext/enclave/mruby/include/mruby/proc.h +184 -0
  169. data/ext/enclave/mruby/include/mruby/range.h +77 -0
  170. data/ext/enclave/mruby/include/mruby/re.h +16 -0
  171. data/ext/enclave/mruby/include/mruby/string.h +428 -0
  172. data/ext/enclave/mruby/include/mruby/throw.h +81 -0
  173. data/ext/enclave/mruby/include/mruby/value.h +471 -0
  174. data/ext/enclave/mruby/include/mruby/variable.h +108 -0
  175. data/ext/enclave/mruby/include/mruby/version.h +143 -0
  176. data/ext/enclave/mruby/include/mruby.h +1632 -0
  177. data/ext/enclave/mruby/lib/mruby/amalgam.rb +568 -0
  178. data/ext/enclave/mruby/lib/mruby/build/command.rb +383 -0
  179. data/ext/enclave/mruby/lib/mruby/build/load_gems.rb +383 -0
  180. data/ext/enclave/mruby/lib/mruby/build.rb +616 -0
  181. data/ext/enclave/mruby/lib/mruby/core_ext.rb +61 -0
  182. data/ext/enclave/mruby/lib/mruby/doc.rb +51 -0
  183. data/ext/enclave/mruby/lib/mruby/gem.rb +585 -0
  184. data/ext/enclave/mruby/lib/mruby/lockfile.rb +81 -0
  185. data/ext/enclave/mruby/lib/mruby/presym.rb +167 -0
  186. data/ext/enclave/mruby/lib/mruby/source.rb +32 -0
  187. data/ext/enclave/mruby/mrbgems/default-no-fpu.gembox +3 -0
  188. data/ext/enclave/mruby/mrbgems/default-no-stdio.gembox +4 -0
  189. data/ext/enclave/mruby/mrbgems/default.gembox +25 -0
  190. data/ext/enclave/mruby/mrbgems/full-core.gembox +6 -0
  191. data/ext/enclave/mruby/mrbgems/hal-posix-dir/mrbgem.rake +7 -0
  192. data/ext/enclave/mruby/mrbgems/hal-posix-dir/src/dir_hal.c +193 -0
  193. data/ext/enclave/mruby/mrbgems/hal-posix-io/mrbgem.rake +8 -0
  194. data/ext/enclave/mruby/mrbgems/hal-posix-io/src/io_hal.c +602 -0
  195. data/ext/enclave/mruby/mrbgems/hal-posix-socket/mrbgem.rake +8 -0
  196. data/ext/enclave/mruby/mrbgems/hal-posix-socket/src/socket_hal.c +158 -0
  197. data/ext/enclave/mruby/mrbgems/hal-posix-task/README.md +102 -0
  198. data/ext/enclave/mruby/mrbgems/hal-posix-task/mrbgem.rake +8 -0
  199. data/ext/enclave/mruby/mrbgems/hal-posix-task/src/task_hal.c +252 -0
  200. data/ext/enclave/mruby/mrbgems/hal-win-dir/mrbgem.rake +7 -0
  201. data/ext/enclave/mruby/mrbgems/hal-win-dir/src/dir_hal.c +249 -0
  202. data/ext/enclave/mruby/mrbgems/hal-win-io/mrbgem.rake +11 -0
  203. data/ext/enclave/mruby/mrbgems/hal-win-io/src/io_hal.c +646 -0
  204. data/ext/enclave/mruby/mrbgems/hal-win-socket/mrbgem.rake +12 -0
  205. data/ext/enclave/mruby/mrbgems/hal-win-socket/src/socket_hal.c +177 -0
  206. data/ext/enclave/mruby/mrbgems/hal-win-task/README.md +109 -0
  207. data/ext/enclave/mruby/mrbgems/hal-win-task/mrbgem.rake +11 -0
  208. data/ext/enclave/mruby/mrbgems/hal-win-task/src/task_hal.c +187 -0
  209. data/ext/enclave/mruby/mrbgems/math.gembox +12 -0
  210. data/ext/enclave/mruby/mrbgems/metaprog.gembox +21 -0
  211. data/ext/enclave/mruby/mrbgems/mruby-array-ext/README.md +87 -0
  212. data/ext/enclave/mruby/mrbgems/mruby-array-ext/mrbgem.rake +5 -0
  213. data/ext/enclave/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +784 -0
  214. data/ext/enclave/mruby/mrbgems/mruby-array-ext/src/array.c +1583 -0
  215. data/ext/enclave/mruby/mrbgems/mruby-array-ext/test/array.rb +849 -0
  216. data/ext/enclave/mruby/mrbgems/mruby-benchmark/README.md +257 -0
  217. data/ext/enclave/mruby/mrbgems/mruby-benchmark/mrbgem.rake +10 -0
  218. data/ext/enclave/mruby/mrbgems/mruby-benchmark/mrblib/benchmark.rb +131 -0
  219. data/ext/enclave/mruby/mrbgems/mruby-benchmark/test/benchmark.rb +244 -0
  220. data/ext/enclave/mruby/mrbgems/mruby-bigint/README-fgmp.md +154 -0
  221. data/ext/enclave/mruby/mrbgems/mruby-bigint/README.md +44 -0
  222. data/ext/enclave/mruby/mrbgems/mruby-bigint/core/bigint.c +6335 -0
  223. data/ext/enclave/mruby/mrbgems/mruby-bigint/core/bigint.h +117 -0
  224. data/ext/enclave/mruby/mrbgems/mruby-bigint/mrbgem.rake +10 -0
  225. data/ext/enclave/mruby/mrbgems/mruby-bigint/test/bigint.rb +157 -0
  226. data/ext/enclave/mruby/mrbgems/mruby-bin-config/README.md +46 -0
  227. data/ext/enclave/mruby/mrbgems/mruby-bin-config/mrbgem.rake +49 -0
  228. data/ext/enclave/mruby/mrbgems/mruby-bin-config/mruby-config +46 -0
  229. data/ext/enclave/mruby/mrbgems/mruby-bin-config/mruby-config.bat +92 -0
  230. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/README.md +63 -0
  231. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +283 -0
  232. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +703 -0
  233. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +10 -0
  234. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +523 -0
  235. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  236. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +238 -0
  237. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  238. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +88 -0
  239. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  240. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c +34 -0
  241. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.h +14 -0
  242. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +436 -0
  243. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +509 -0
  244. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +71 -0
  245. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +64 -0
  246. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +768 -0
  247. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +159 -0
  248. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +24 -0
  249. data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +19 -0
  250. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/README.md +94 -0
  251. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +58 -0
  252. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +7 -0
  253. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +808 -0
  254. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_buffer.c +1035 -0
  255. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_buffer.h +185 -0
  256. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_completion.c +797 -0
  257. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_completion.h +132 -0
  258. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_editor.c +1118 -0
  259. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_editor.h +153 -0
  260. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_highlight.c +516 -0
  261. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_highlight.h +95 -0
  262. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_history.c +185 -0
  263. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_history.h +76 -0
  264. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_term.c +491 -0
  265. data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_term.h +137 -0
  266. data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/README.md +58 -0
  267. data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb +30 -0
  268. data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +15 -0
  269. data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +362 -0
  270. data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c +104 -0
  271. data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/README.md +47 -0
  272. data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +178 -0
  273. data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +7 -0
  274. data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +380 -0
  275. data/ext/enclave/mruby/mrbgems/mruby-bin-strip/README.md +38 -0
  276. data/ext/enclave/mruby/mrbgems/mruby-bin-strip/bintest/mruby_strip.rb +73 -0
  277. data/ext/enclave/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +7 -0
  278. data/ext/enclave/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby_strip.c +139 -0
  279. data/ext/enclave/mruby/mrbgems/mruby-binding/README.md +256 -0
  280. data/ext/enclave/mruby/mrbgems/mruby-binding/mrbgem.rake +7 -0
  281. data/ext/enclave/mruby/mrbgems/mruby-binding/src/binding.c +518 -0
  282. data/ext/enclave/mruby/mrbgems/mruby-binding/test/binding.c +14 -0
  283. data/ext/enclave/mruby/mrbgems/mruby-binding/test/binding.rb +64 -0
  284. data/ext/enclave/mruby/mrbgems/mruby-catch/README.md +94 -0
  285. data/ext/enclave/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
  286. data/ext/enclave/mruby/mrbgems/mruby-catch/mrblib/catch.rb +29 -0
  287. data/ext/enclave/mruby/mrbgems/mruby-catch/src/catch.c +149 -0
  288. data/ext/enclave/mruby/mrbgems/mruby-catch/test/catch.rb +86 -0
  289. data/ext/enclave/mruby/mrbgems/mruby-class-ext/README.md +81 -0
  290. data/ext/enclave/mruby/mrbgems/mruby-class-ext/mrbgem.rake +5 -0
  291. data/ext/enclave/mruby/mrbgems/mruby-class-ext/src/class.c +377 -0
  292. data/ext/enclave/mruby/mrbgems/mruby-class-ext/test/class.rb +46 -0
  293. data/ext/enclave/mruby/mrbgems/mruby-class-ext/test/module.rb +109 -0
  294. data/ext/enclave/mruby/mrbgems/mruby-cmath/README.md +45 -0
  295. data/ext/enclave/mruby/mrbgems/mruby-cmath/mrbgem.rake +8 -0
  296. data/ext/enclave/mruby/mrbgems/mruby-cmath/src/cmath.c +426 -0
  297. data/ext/enclave/mruby/mrbgems/mruby-cmath/test/cmath.rb +41 -0
  298. data/ext/enclave/mruby/mrbgems/mruby-compar-ext/README.md +65 -0
  299. data/ext/enclave/mruby/mrbgems/mruby-compar-ext/mrbgem.rake +5 -0
  300. data/ext/enclave/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb +75 -0
  301. data/ext/enclave/mruby/mrbgems/mruby-compar-ext/test/compar.rb +21 -0
  302. data/ext/enclave/mruby/mrbgems/mruby-compiler/README.md +28 -0
  303. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/codegen.c +7316 -0
  304. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/keywords +52 -0
  305. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/lex.def +207 -0
  306. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/node.h +784 -0
  307. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/parse.y +8977 -0
  308. data/ext/enclave/mruby/mrbgems/mruby-compiler/core/y.tab.c +16136 -0
  309. data/ext/enclave/mruby/mrbgems/mruby-compiler/mrbgem.rake +42 -0
  310. data/ext/enclave/mruby/mrbgems/mruby-complex/README.md +55 -0
  311. data/ext/enclave/mruby/mrbgems/mruby-complex/mrbgem.rake +7 -0
  312. data/ext/enclave/mruby/mrbgems/mruby-complex/mrblib/complex.rb +259 -0
  313. data/ext/enclave/mruby/mrbgems/mruby-complex/src/complex.c +597 -0
  314. data/ext/enclave/mruby/mrbgems/mruby-complex/test/complex.rb +174 -0
  315. data/ext/enclave/mruby/mrbgems/mruby-data/README.md +126 -0
  316. data/ext/enclave/mruby/mrbgems/mruby-data/mrbgem.rake +5 -0
  317. data/ext/enclave/mruby/mrbgems/mruby-data/src/data.c +550 -0
  318. data/ext/enclave/mruby/mrbgems/mruby-data/test/data.rb +76 -0
  319. data/ext/enclave/mruby/mrbgems/mruby-dir/README.md +53 -0
  320. data/ext/enclave/mruby/mrbgems/mruby-dir/include/dir_hal.h +79 -0
  321. data/ext/enclave/mruby/mrbgems/mruby-dir/mrbgem.rake +35 -0
  322. data/ext/enclave/mruby/mrbgems/mruby-dir/mrblib/dir.rb +124 -0
  323. data/ext/enclave/mruby/mrbgems/mruby-dir/src/dir.c +493 -0
  324. data/ext/enclave/mruby/mrbgems/mruby-dir/test/dir.rb +138 -0
  325. data/ext/enclave/mruby/mrbgems/mruby-dir/test/dirtest.c +125 -0
  326. data/ext/enclave/mruby/mrbgems/mruby-encoding/README.md +96 -0
  327. data/ext/enclave/mruby/mrbgems/mruby-encoding/mrbgem.rake +8 -0
  328. data/ext/enclave/mruby/mrbgems/mruby-encoding/src/encoding.c +128 -0
  329. data/ext/enclave/mruby/mrbgems/mruby-encoding/test/numeric.rb +27 -0
  330. data/ext/enclave/mruby/mrbgems/mruby-encoding/test/string.rb +30 -0
  331. data/ext/enclave/mruby/mrbgems/mruby-enum-chain/README.md +80 -0
  332. data/ext/enclave/mruby/mrbgems/mruby-enum-chain/mrbgem.rake +6 -0
  333. data/ext/enclave/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +149 -0
  334. data/ext/enclave/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +108 -0
  335. data/ext/enclave/mruby/mrbgems/mruby-enum-ext/README.md +487 -0
  336. data/ext/enclave/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +5 -0
  337. data/ext/enclave/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +938 -0
  338. data/ext/enclave/mruby/mrbgems/mruby-enum-ext/test/enum.rb +223 -0
  339. data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/README.md +91 -0
  340. data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  341. data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +363 -0
  342. data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +59 -0
  343. data/ext/enclave/mruby/mrbgems/mruby-enumerator/README.md +89 -0
  344. data/ext/enclave/mruby/mrbgems/mruby-enumerator/mrbgem.rake +6 -0
  345. data/ext/enclave/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +861 -0
  346. data/ext/enclave/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +664 -0
  347. data/ext/enclave/mruby/mrbgems/mruby-errno/README.md +83 -0
  348. data/ext/enclave/mruby/mrbgems/mruby-errno/mrbgem.rake +5 -0
  349. data/ext/enclave/mruby/mrbgems/mruby-errno/mrblib/errno.rb +50 -0
  350. data/ext/enclave/mruby/mrbgems/mruby-errno/src/errno.c +335 -0
  351. data/ext/enclave/mruby/mrbgems/mruby-errno/src/gen.rb +18 -0
  352. data/ext/enclave/mruby/mrbgems/mruby-errno/src/known_errors.def +156 -0
  353. data/ext/enclave/mruby/mrbgems/mruby-errno/src/known_errors_def.cstub +780 -0
  354. data/ext/enclave/mruby/mrbgems/mruby-errno/test/errno.rb +57 -0
  355. data/ext/enclave/mruby/mrbgems/mruby-error/README.md +103 -0
  356. data/ext/enclave/mruby/mrbgems/mruby-error/mrbgem.rake +5 -0
  357. data/ext/enclave/mruby/mrbgems/mruby-error/src/exception.c +143 -0
  358. data/ext/enclave/mruby/mrbgems/mruby-error/test/exception.c +60 -0
  359. data/ext/enclave/mruby/mrbgems/mruby-error/test/exception.rb +55 -0
  360. data/ext/enclave/mruby/mrbgems/mruby-eval/README.md +26 -0
  361. data/ext/enclave/mruby/mrbgems/mruby-eval/mrbgem.rake +10 -0
  362. data/ext/enclave/mruby/mrbgems/mruby-eval/src/eval.c +437 -0
  363. data/ext/enclave/mruby/mrbgems/mruby-eval/test/binding.rb +81 -0
  364. data/ext/enclave/mruby/mrbgems/mruby-eval/test/eval.rb +185 -0
  365. data/ext/enclave/mruby/mrbgems/mruby-exit/mrbgem.rake +5 -0
  366. data/ext/enclave/mruby/mrbgems/mruby-exit/src/mruby_exit.c +83 -0
  367. data/ext/enclave/mruby/mrbgems/mruby-fiber/mrbgem.rake +5 -0
  368. data/ext/enclave/mruby/mrbgems/mruby-fiber/src/fiber.c +575 -0
  369. data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fiber.rb +210 -0
  370. data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fiber2.rb +155 -0
  371. data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fibertest.c +87 -0
  372. data/ext/enclave/mruby/mrbgems/mruby-hash-ext/README.md +392 -0
  373. data/ext/enclave/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +6 -0
  374. data/ext/enclave/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +408 -0
  375. data/ext/enclave/mruby/mrbgems/mruby-hash-ext/src/hash_ext.c +392 -0
  376. data/ext/enclave/mruby/mrbgems/mruby-hash-ext/test/hash.rb +317 -0
  377. data/ext/enclave/mruby/mrbgems/mruby-io/README.md +198 -0
  378. data/ext/enclave/mruby/mrbgems/mruby-io/include/io_hal.h +451 -0
  379. data/ext/enclave/mruby/mrbgems/mruby-io/include/mruby/io.h +76 -0
  380. data/ext/enclave/mruby/mrbgems/mruby-io/mrbgem.rake +34 -0
  381. data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/file.rb +109 -0
  382. data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +24 -0
  383. data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/io.rb +303 -0
  384. data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/kernel.rb +175 -0
  385. data/ext/enclave/mruby/mrbgems/mruby-io/src/file.c +1192 -0
  386. data/ext/enclave/mruby/mrbgems/mruby-io/src/file_test.c +403 -0
  387. data/ext/enclave/mruby/mrbgems/mruby-io/src/io.c +2260 -0
  388. data/ext/enclave/mruby/mrbgems/mruby-io/src/mruby_io_gem.c +21 -0
  389. data/ext/enclave/mruby/mrbgems/mruby-io/test/file.rb +415 -0
  390. data/ext/enclave/mruby/mrbgems/mruby-io/test/file_test.rb +112 -0
  391. data/ext/enclave/mruby/mrbgems/mruby-io/test/io.rb +668 -0
  392. data/ext/enclave/mruby/mrbgems/mruby-io/test/mruby_io_test.c +293 -0
  393. data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/README.md +165 -0
  394. data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  395. data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +316 -0
  396. data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +134 -0
  397. data/ext/enclave/mruby/mrbgems/mruby-math/README.md +77 -0
  398. data/ext/enclave/mruby/mrbgems/mruby-math/mrbgem.rake +5 -0
  399. data/ext/enclave/mruby/mrbgems/mruby-math/src/math.c +753 -0
  400. data/ext/enclave/mruby/mrbgems/mruby-math/test/math.rb +201 -0
  401. data/ext/enclave/mruby/mrbgems/mruby-metaprog/README.md +123 -0
  402. data/ext/enclave/mruby/mrbgems/mruby-metaprog/mrbgem.rake +5 -0
  403. data/ext/enclave/mruby/mrbgems/mruby-metaprog/src/metaprog.c +739 -0
  404. data/ext/enclave/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +465 -0
  405. data/ext/enclave/mruby/mrbgems/mruby-method/README.md +66 -0
  406. data/ext/enclave/mruby/mrbgems/mruby-method/mrbgem.rake +7 -0
  407. data/ext/enclave/mruby/mrbgems/mruby-method/mrblib/method.rb +73 -0
  408. data/ext/enclave/mruby/mrbgems/mruby-method/src/method.c +890 -0
  409. data/ext/enclave/mruby/mrbgems/mruby-method/test/method.rb +514 -0
  410. data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/README.md +78 -0
  411. data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +5 -0
  412. data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +125 -0
  413. data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +527 -0
  414. data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +137 -0
  415. data/ext/enclave/mruby/mrbgems/mruby-object-ext/README.md +144 -0
  416. data/ext/enclave/mruby/mrbgems/mruby-object-ext/mrbgem.rake +5 -0
  417. data/ext/enclave/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +33 -0
  418. data/ext/enclave/mruby/mrbgems/mruby-object-ext/src/object.c +128 -0
  419. data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/nil.rb +16 -0
  420. data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/object.rb +67 -0
  421. data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/object_ext.c +17 -0
  422. data/ext/enclave/mruby/mrbgems/mruby-objectspace/README.md +59 -0
  423. data/ext/enclave/mruby/mrbgems/mruby-objectspace/mrbgem.rake +5 -0
  424. data/ext/enclave/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +188 -0
  425. data/ext/enclave/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +60 -0
  426. data/ext/enclave/mruby/mrbgems/mruby-os-memsize/README.md +75 -0
  427. data/ext/enclave/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
  428. data/ext/enclave/mruby/mrbgems/mruby-os-memsize/src/memsize.c +271 -0
  429. data/ext/enclave/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
  430. data/ext/enclave/mruby/mrbgems/mruby-pack/README.md +140 -0
  431. data/ext/enclave/mruby/mrbgems/mruby-pack/mrbgem.rake +5 -0
  432. data/ext/enclave/mruby/mrbgems/mruby-pack/src/pack.c +2129 -0
  433. data/ext/enclave/mruby/mrbgems/mruby-pack/test/pack.rb +202 -0
  434. data/ext/enclave/mruby/mrbgems/mruby-proc-binding/README.md +140 -0
  435. data/ext/enclave/mruby/mrbgems/mruby-proc-binding/mrbgem.rake +10 -0
  436. data/ext/enclave/mruby/mrbgems/mruby-proc-binding/src/proc_binding.c +76 -0
  437. data/ext/enclave/mruby/mrbgems/mruby-proc-binding/test/proc_binding.c +14 -0
  438. data/ext/enclave/mruby/mrbgems/mruby-proc-binding/test/proc_binding.rb +22 -0
  439. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/README.md +107 -0
  440. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +5 -0
  441. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +130 -0
  442. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/src/proc.c +267 -0
  443. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/test/proc.c +62 -0
  444. data/ext/enclave/mruby/mrbgems/mruby-proc-ext/test/proc.rb +130 -0
  445. data/ext/enclave/mruby/mrbgems/mruby-random/README.md +272 -0
  446. data/ext/enclave/mruby/mrbgems/mruby-random/mrbgem.rake +5 -0
  447. data/ext/enclave/mruby/mrbgems/mruby-random/src/random.c +608 -0
  448. data/ext/enclave/mruby/mrbgems/mruby-random/test/random.rb +151 -0
  449. data/ext/enclave/mruby/mrbgems/mruby-range-ext/README.md +93 -0
  450. data/ext/enclave/mruby/mrbgems/mruby-range-ext/mrbgem.rake +5 -0
  451. data/ext/enclave/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +155 -0
  452. data/ext/enclave/mruby/mrbgems/mruby-range-ext/src/range.c +236 -0
  453. data/ext/enclave/mruby/mrbgems/mruby-range-ext/test/range.rb +211 -0
  454. data/ext/enclave/mruby/mrbgems/mruby-rational/README.md +61 -0
  455. data/ext/enclave/mruby/mrbgems/mruby-rational/mrbgem.rake +7 -0
  456. data/ext/enclave/mruby/mrbgems/mruby-rational/mrblib/rational.rb +66 -0
  457. data/ext/enclave/mruby/mrbgems/mruby-rational/src/rational.c +1269 -0
  458. data/ext/enclave/mruby/mrbgems/mruby-rational/test/rational.rb +316 -0
  459. data/ext/enclave/mruby/mrbgems/mruby-set/LICENSE +24 -0
  460. data/ext/enclave/mruby/mrbgems/mruby-set/README.md +260 -0
  461. data/ext/enclave/mruby/mrbgems/mruby-set/mrbgem.rake +9 -0
  462. data/ext/enclave/mruby/mrbgems/mruby-set/mrblib/set.rb +325 -0
  463. data/ext/enclave/mruby/mrbgems/mruby-set/mruby-set.gem +6 -0
  464. data/ext/enclave/mruby/mrbgems/mruby-set/src/set.c +1535 -0
  465. data/ext/enclave/mruby/mrbgems/mruby-set/test/set.rb +764 -0
  466. data/ext/enclave/mruby/mrbgems/mruby-sleep/README.md +29 -0
  467. data/ext/enclave/mruby/mrbgems/mruby-sleep/example/sleep.rb +2 -0
  468. data/ext/enclave/mruby/mrbgems/mruby-sleep/mrbgem.rake +5 -0
  469. data/ext/enclave/mruby/mrbgems/mruby-sleep/src/sleep.c +187 -0
  470. data/ext/enclave/mruby/mrbgems/mruby-sleep/test/sleep_test.rb +29 -0
  471. data/ext/enclave/mruby/mrbgems/mruby-socket/README.md +56 -0
  472. data/ext/enclave/mruby/mrbgems/mruby-socket/include/socket_hal.h +83 -0
  473. data/ext/enclave/mruby/mrbgems/mruby-socket/mrbgem.rake +37 -0
  474. data/ext/enclave/mruby/mrbgems/mruby-socket/mrblib/socket.rb +1131 -0
  475. data/ext/enclave/mruby/mrbgems/mruby-socket/src/const.cstub +480 -0
  476. data/ext/enclave/mruby/mrbgems/mruby-socket/src/const.def +172 -0
  477. data/ext/enclave/mruby/mrbgems/mruby-socket/src/gen.rb +17 -0
  478. data/ext/enclave/mruby/mrbgems/mruby-socket/src/socket.c +1374 -0
  479. data/ext/enclave/mruby/mrbgems/mruby-socket/test/addrinfo.rb +91 -0
  480. data/ext/enclave/mruby/mrbgems/mruby-socket/test/basicsocket.rb +17 -0
  481. data/ext/enclave/mruby/mrbgems/mruby-socket/test/ipsocket.rb +44 -0
  482. data/ext/enclave/mruby/mrbgems/mruby-socket/test/socket.rb +38 -0
  483. data/ext/enclave/mruby/mrbgems/mruby-socket/test/sockettest.c +84 -0
  484. data/ext/enclave/mruby/mrbgems/mruby-socket/test/tcpsocket.rb +4 -0
  485. data/ext/enclave/mruby/mrbgems/mruby-socket/test/udpsocket.rb +16 -0
  486. data/ext/enclave/mruby/mrbgems/mruby-socket/test/unix.rb +130 -0
  487. data/ext/enclave/mruby/mrbgems/mruby-sprintf/README.md +235 -0
  488. data/ext/enclave/mruby/mrbgems/mruby-sprintf/mrbgem.rake +5 -0
  489. data/ext/enclave/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +24 -0
  490. data/ext/enclave/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1195 -0
  491. data/ext/enclave/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +92 -0
  492. data/ext/enclave/mruby/mrbgems/mruby-strftime/README.md +140 -0
  493. data/ext/enclave/mruby/mrbgems/mruby-strftime/mrbgem.rake +7 -0
  494. data/ext/enclave/mruby/mrbgems/mruby-strftime/src/strftime.c +119 -0
  495. data/ext/enclave/mruby/mrbgems/mruby-strftime/test/strftime.rb +152 -0
  496. data/ext/enclave/mruby/mrbgems/mruby-string-ext/README.md +886 -0
  497. data/ext/enclave/mruby/mrbgems/mruby-string-ext/mrbgem.rake +5 -0
  498. data/ext/enclave/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +166 -0
  499. data/ext/enclave/mruby/mrbgems/mruby-string-ext/src/string.c +2290 -0
  500. data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/numeric.rb +27 -0
  501. data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/range.rb +26 -0
  502. data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/string.rb +765 -0
  503. data/ext/enclave/mruby/mrbgems/mruby-struct/README.md +105 -0
  504. data/ext/enclave/mruby/mrbgems/mruby-struct/mrbgem.rake +5 -0
  505. data/ext/enclave/mruby/mrbgems/mruby-struct/mrblib/struct.rb +69 -0
  506. data/ext/enclave/mruby/mrbgems/mruby-struct/src/struct.c +812 -0
  507. data/ext/enclave/mruby/mrbgems/mruby-struct/test/struct.rb +303 -0
  508. data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/README.md +50 -0
  509. data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +5 -0
  510. data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +72 -0
  511. data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +79 -0
  512. data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +55 -0
  513. data/ext/enclave/mruby/mrbgems/mruby-task/README.md +770 -0
  514. data/ext/enclave/mruby/mrbgems/mruby-task/examples/inspection.rb +65 -0
  515. data/ext/enclave/mruby/mrbgems/mruby-task/examples/priority.rb +41 -0
  516. data/ext/enclave/mruby/mrbgems/mruby-task/examples/producer_consumer.rb +58 -0
  517. data/ext/enclave/mruby/mrbgems/mruby-task/examples/simple.rb +27 -0
  518. data/ext/enclave/mruby/mrbgems/mruby-task/examples/statistics.rb +59 -0
  519. data/ext/enclave/mruby/mrbgems/mruby-task/examples/suspend_resume.rb +47 -0
  520. data/ext/enclave/mruby/mrbgems/mruby-task/examples/task_pass.rb +21 -0
  521. data/ext/enclave/mruby/mrbgems/mruby-task/include/task.h +143 -0
  522. data/ext/enclave/mruby/mrbgems/mruby-task/include/task_hal.h +162 -0
  523. data/ext/enclave/mruby/mrbgems/mruby-task/mrbgem.rake +36 -0
  524. data/ext/enclave/mruby/mrbgems/mruby-task/src/task.c +1573 -0
  525. data/ext/enclave/mruby/mrbgems/mruby-task/test/task.rb +185 -0
  526. data/ext/enclave/mruby/mrbgems/mruby-test/README.md +7 -0
  527. data/ext/enclave/mruby/mrbgems/mruby-test/driver.c +315 -0
  528. data/ext/enclave/mruby/mrbgems/mruby-test/mrbgem.rake +173 -0
  529. data/ext/enclave/mruby/mrbgems/mruby-test/vformat.c +151 -0
  530. data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/mrbgem.rake +5 -0
  531. data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/test/inline.c +92 -0
  532. data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/test/inline.rb +118 -0
  533. data/ext/enclave/mruby/mrbgems/mruby-time/README.md +102 -0
  534. data/ext/enclave/mruby/mrbgems/mruby-time/include/mruby/time.h +27 -0
  535. data/ext/enclave/mruby/mrbgems/mruby-time/mrbgem.rake +5 -0
  536. data/ext/enclave/mruby/mrbgems/mruby-time/src/time.c +1739 -0
  537. data/ext/enclave/mruby/mrbgems/mruby-time/test/time.rb +313 -0
  538. data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/README.md +32 -0
  539. data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +5 -0
  540. data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +24 -0
  541. data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +23 -0
  542. data/ext/enclave/mruby/mrbgems/stdlib-ext.gembox +21 -0
  543. data/ext/enclave/mruby/mrbgems/stdlib-io.gembox +15 -0
  544. data/ext/enclave/mruby/mrbgems/stdlib.gembox +63 -0
  545. data/ext/enclave/mruby/mrblib/10error.rb +23 -0
  546. data/ext/enclave/mruby/mrblib/array.rb +102 -0
  547. data/ext/enclave/mruby/mrblib/compar.rb +102 -0
  548. data/ext/enclave/mruby/mrblib/enum.rb +358 -0
  549. data/ext/enclave/mruby/mrblib/hash.rb +276 -0
  550. data/ext/enclave/mruby/mrblib/kernel.rb +45 -0
  551. data/ext/enclave/mruby/mrblib/numeric.rb +160 -0
  552. data/ext/enclave/mruby/mrblib/range.rb +98 -0
  553. data/ext/enclave/mruby/mrblib/string.rb +173 -0
  554. data/ext/enclave/mruby/mrblib/symbol.rb +8 -0
  555. data/ext/enclave/mruby/oss-fuzz/mruby_fuzzer.c +18 -0
  556. data/ext/enclave/mruby/oss-fuzz/proto_to_ruby.h +55 -0
  557. data/ext/enclave/mruby/src/allocf.c +37 -0
  558. data/ext/enclave/mruby/src/array.c +2302 -0
  559. data/ext/enclave/mruby/src/backtrace.c +294 -0
  560. data/ext/enclave/mruby/src/cdump.c +498 -0
  561. data/ext/enclave/mruby/src/class.c +4394 -0
  562. data/ext/enclave/mruby/src/codedump.c +693 -0
  563. data/ext/enclave/mruby/src/debug.c +290 -0
  564. data/ext/enclave/mruby/src/dump.c +998 -0
  565. data/ext/enclave/mruby/src/enum.c +30 -0
  566. data/ext/enclave/mruby/src/error.c +937 -0
  567. data/ext/enclave/mruby/src/etc.c +421 -0
  568. data/ext/enclave/mruby/src/fmt_fp.c +372 -0
  569. data/ext/enclave/mruby/src/gc.c +1610 -0
  570. data/ext/enclave/mruby/src/hash.c +2355 -0
  571. data/ext/enclave/mruby/src/init.c +50 -0
  572. data/ext/enclave/mruby/src/kernel.c +718 -0
  573. data/ext/enclave/mruby/src/load.c +760 -0
  574. data/ext/enclave/mruby/src/mempool.c +225 -0
  575. data/ext/enclave/mruby/src/numeric.c +2420 -0
  576. data/ext/enclave/mruby/src/numops.c +112 -0
  577. data/ext/enclave/mruby/src/object.c +883 -0
  578. data/ext/enclave/mruby/src/print.c +136 -0
  579. data/ext/enclave/mruby/src/proc.c +572 -0
  580. data/ext/enclave/mruby/src/range.c +597 -0
  581. data/ext/enclave/mruby/src/readfloat.c +228 -0
  582. data/ext/enclave/mruby/src/readint.c +27 -0
  583. data/ext/enclave/mruby/src/readnum.c +43 -0
  584. data/ext/enclave/mruby/src/state.c +247 -0
  585. data/ext/enclave/mruby/src/string.c +3577 -0
  586. data/ext/enclave/mruby/src/symbol.c +1023 -0
  587. data/ext/enclave/mruby/src/value_array.h +28 -0
  588. data/ext/enclave/mruby/src/variable.c +1475 -0
  589. data/ext/enclave/mruby/src/version.c +17 -0
  590. data/ext/enclave/mruby/src/vm.c +3696 -0
  591. data/ext/enclave/mruby/tasks/amalgam.rake +34 -0
  592. data/ext/enclave/mruby/tasks/benchmark.rake +93 -0
  593. data/ext/enclave/mruby/tasks/bin.rake +23 -0
  594. data/ext/enclave/mruby/tasks/core.rake +12 -0
  595. data/ext/enclave/mruby/tasks/doc.rake +118 -0
  596. data/ext/enclave/mruby/tasks/install.rake +40 -0
  597. data/ext/enclave/mruby/tasks/libmruby.rake +90 -0
  598. data/ext/enclave/mruby/tasks/mrbgems.rake +152 -0
  599. data/ext/enclave/mruby/tasks/mrblib.rake +29 -0
  600. data/ext/enclave/mruby/tasks/presym.rake +57 -0
  601. data/ext/enclave/mruby/tasks/test.rake +84 -0
  602. data/ext/enclave/mruby/tasks/toolchains/android.rake +228 -0
  603. data/ext/enclave/mruby/tasks/toolchains/clang.rake +8 -0
  604. data/ext/enclave/mruby/tasks/toolchains/emscripten.rake +57 -0
  605. data/ext/enclave/mruby/tasks/toolchains/gcc.rake +74 -0
  606. data/ext/enclave/mruby/tasks/toolchains/openwrt.rake +32 -0
  607. data/ext/enclave/mruby/tasks/toolchains/visualcpp.rake +48 -0
  608. data/ext/enclave/mruby/test/assert.rb +404 -0
  609. data/ext/enclave/mruby/test/bintest.rb +55 -0
  610. data/ext/enclave/mruby/test/t/argumenterror.rb +37 -0
  611. data/ext/enclave/mruby/test/t/array.rb +478 -0
  612. data/ext/enclave/mruby/test/t/basicobject.rb +10 -0
  613. data/ext/enclave/mruby/test/t/bs_block.rb +621 -0
  614. data/ext/enclave/mruby/test/t/bs_literal.rb +38 -0
  615. data/ext/enclave/mruby/test/t/class.rb +505 -0
  616. data/ext/enclave/mruby/test/t/codegen.rb +196 -0
  617. data/ext/enclave/mruby/test/t/comparable.rb +79 -0
  618. data/ext/enclave/mruby/test/t/ensure.rb +36 -0
  619. data/ext/enclave/mruby/test/t/enumerable.rb +134 -0
  620. data/ext/enclave/mruby/test/t/exception.rb +425 -0
  621. data/ext/enclave/mruby/test/t/false.rb +31 -0
  622. data/ext/enclave/mruby/test/t/float.rb +296 -0
  623. data/ext/enclave/mruby/test/t/gc.rb +45 -0
  624. data/ext/enclave/mruby/test/t/hash.rb +976 -0
  625. data/ext/enclave/mruby/test/t/indexerror.rb +6 -0
  626. data/ext/enclave/mruby/test/t/integer.rb +247 -0
  627. data/ext/enclave/mruby/test/t/iterations.rb +61 -0
  628. data/ext/enclave/mruby/test/t/kernel.rb +462 -0
  629. data/ext/enclave/mruby/test/t/lang.rb +74 -0
  630. data/ext/enclave/mruby/test/t/literals.rb +386 -0
  631. data/ext/enclave/mruby/test/t/localjumperror.rb +13 -0
  632. data/ext/enclave/mruby/test/t/methods.rb +138 -0
  633. data/ext/enclave/mruby/test/t/module.rb +931 -0
  634. data/ext/enclave/mruby/test/t/nameerror.rb +28 -0
  635. data/ext/enclave/mruby/test/t/nil.rb +39 -0
  636. data/ext/enclave/mruby/test/t/nomethoderror.rb +22 -0
  637. data/ext/enclave/mruby/test/t/numeric.rb +114 -0
  638. data/ext/enclave/mruby/test/t/object.rb +10 -0
  639. data/ext/enclave/mruby/test/t/proc.rb +198 -0
  640. data/ext/enclave/mruby/test/t/range.rb +194 -0
  641. data/ext/enclave/mruby/test/t/rangeerror.rb +6 -0
  642. data/ext/enclave/mruby/test/t/regexperror.rb +4 -0
  643. data/ext/enclave/mruby/test/t/runtimeerror.rb +6 -0
  644. data/ext/enclave/mruby/test/t/standarderror.rb +6 -0
  645. data/ext/enclave/mruby/test/t/string.rb +981 -0
  646. data/ext/enclave/mruby/test/t/superclass.rb +46 -0
  647. data/ext/enclave/mruby/test/t/symbol.rb +30 -0
  648. data/ext/enclave/mruby/test/t/syntax.rb +1296 -0
  649. data/ext/enclave/mruby/test/t/true.rb +31 -0
  650. data/ext/enclave/mruby/test/t/typeerror.rb +6 -0
  651. data/ext/enclave/mruby/test/t/unicode.rb +39 -0
  652. data/ext/enclave/mruby/test/t/vformat.rb +57 -0
  653. data/ext/enclave/mruby/tools/lrama/LEGAL.md +12 -0
  654. data/ext/enclave/mruby/tools/lrama/MIT +21 -0
  655. data/ext/enclave/mruby/tools/lrama/NEWS.md +696 -0
  656. data/ext/enclave/mruby/tools/lrama/exe/lrama +7 -0
  657. data/ext/enclave/mruby/tools/lrama/lib/lrama/bitmap.rb +34 -0
  658. data/ext/enclave/mruby/tools/lrama/lib/lrama/command.rb +68 -0
  659. data/ext/enclave/mruby/tools/lrama/lib/lrama/context.rb +499 -0
  660. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/derivation.rb +66 -0
  661. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/example.rb +129 -0
  662. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/path.rb +29 -0
  663. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/production_path.rb +19 -0
  664. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/start_path.rb +23 -0
  665. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/state_item.rb +8 -0
  666. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/transition_path.rb +19 -0
  667. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/triple.rb +23 -0
  668. data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples.rb +298 -0
  669. data/ext/enclave/mruby/tools/lrama/lib/lrama/diagnostics.rb +36 -0
  670. data/ext/enclave/mruby/tools/lrama/lib/lrama/digraph.rb +83 -0
  671. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/auxiliary.rb +9 -0
  672. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/binding.rb +67 -0
  673. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/destructor_code.rb +42 -0
  674. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/initial_action_code.rb +36 -0
  675. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/no_reference_code.rb +30 -0
  676. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/printer_code.rb +42 -0
  677. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/rule_action.rb +92 -0
  678. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code.rb +53 -0
  679. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/counter.rb +17 -0
  680. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/destructor.rb +11 -0
  681. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/error_token.rb +11 -0
  682. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/resolver.rb +62 -0
  683. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/rhs.rb +40 -0
  684. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/rule.rb +24 -0
  685. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule.rb +5 -0
  686. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/percent_code.rb +14 -0
  687. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/precedence.rb +13 -0
  688. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/printer.rb +11 -0
  689. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/reference.rb +16 -0
  690. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/rule.rb +75 -0
  691. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/rule_builder.rb +255 -0
  692. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/stdlib.y +122 -0
  693. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbol.rb +105 -0
  694. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbols/resolver.rb +301 -0
  695. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbols.rb +3 -0
  696. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/type.rb +20 -0
  697. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/union.rb +12 -0
  698. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar.rb +407 -0
  699. data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar_validator.rb +37 -0
  700. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/grammar_file.rb +40 -0
  701. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/location.rb +115 -0
  702. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/char.rb +11 -0
  703. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/ident.rb +11 -0
  704. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/instantiate_rule.rb +30 -0
  705. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/tag.rb +16 -0
  706. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/user_code.rb +83 -0
  707. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token.rb +70 -0
  708. data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer.rb +191 -0
  709. data/ext/enclave/mruby/tools/lrama/lib/lrama/logger.rb +21 -0
  710. data/ext/enclave/mruby/tools/lrama/lib/lrama/option_parser.rb +169 -0
  711. data/ext/enclave/mruby/tools/lrama/lib/lrama/options.rb +28 -0
  712. data/ext/enclave/mruby/tools/lrama/lib/lrama/output.rb +459 -0
  713. data/ext/enclave/mruby/tools/lrama/lib/lrama/parser.rb +2144 -0
  714. data/ext/enclave/mruby/tools/lrama/lib/lrama/report/duration.rb +27 -0
  715. data/ext/enclave/mruby/tools/lrama/lib/lrama/report/profile.rb +16 -0
  716. data/ext/enclave/mruby/tools/lrama/lib/lrama/report.rb +4 -0
  717. data/ext/enclave/mruby/tools/lrama/lib/lrama/state/reduce.rb +37 -0
  718. data/ext/enclave/mruby/tools/lrama/lib/lrama/state/reduce_reduce_conflict.rb +11 -0
  719. data/ext/enclave/mruby/tools/lrama/lib/lrama/state/resolved_conflict.rb +31 -0
  720. data/ext/enclave/mruby/tools/lrama/lib/lrama/state/shift.rb +15 -0
  721. data/ext/enclave/mruby/tools/lrama/lib/lrama/state/shift_reduce_conflict.rb +11 -0
  722. data/ext/enclave/mruby/tools/lrama/lib/lrama/state.rb +433 -0
  723. data/ext/enclave/mruby/tools/lrama/lib/lrama/states/item.rb +91 -0
  724. data/ext/enclave/mruby/tools/lrama/lib/lrama/states.rb +595 -0
  725. data/ext/enclave/mruby/tools/lrama/lib/lrama/states_reporter.rb +362 -0
  726. data/ext/enclave/mruby/tools/lrama/lib/lrama/trace_reporter.rb +45 -0
  727. data/ext/enclave/mruby/tools/lrama/lib/lrama/version.rb +5 -0
  728. data/ext/enclave/mruby/tools/lrama/lib/lrama.rb +22 -0
  729. data/ext/enclave/mruby/tools/lrama/template/bison/_yacc.h +71 -0
  730. data/ext/enclave/mruby/tools/lrama/template/bison/yacc.c +2068 -0
  731. data/ext/enclave/mruby/tools/lrama/template/bison/yacc.h +40 -0
  732. data/ext/enclave/sandbox_build_config.rb +15 -0
  733. data/ext/enclave/sandbox_core.c +722 -0
  734. data/ext/enclave/sandbox_core.h +87 -0
  735. data/lib/enclave/result.rb +29 -0
  736. data/lib/enclave/tool.rb +38 -0
  737. data/lib/enclave/version.rb +3 -0
  738. data/lib/enclave.rb +73 -0
  739. metadata +819 -0
@@ -0,0 +1,2144 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.8.1
4
+ # from Racc grammar file "parser.y".
5
+ #
6
+
7
+ ###### racc/parser.rb begin
8
+ unless $".find {|p| p.end_with?('/racc/parser.rb')}
9
+ $".push "#{__dir__}/racc/parser.rb"
10
+ self.class.module_eval(<<'...end racc/parser.rb/module_eval...', 'racc/parser.rb', 1)
11
+ #--
12
+ # Copyright (c) 1999-2006 Minero Aoki
13
+ #
14
+ # This program is free software.
15
+ # You can distribute/modify this program under the same terms of ruby.
16
+ #
17
+ # As a special exception, when this code is copied by Racc
18
+ # into a Racc output file, you may use that output file
19
+ # without restriction.
20
+ #++
21
+
22
+ unless $".find {|p| p.end_with?('/racc/info.rb')}
23
+ $".push "#{__dir__}/racc/info.rb"
24
+
25
+ module Racc
26
+ VERSION = '1.8.1'
27
+ Version = VERSION
28
+ Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
29
+ end
30
+
31
+ end
32
+
33
+
34
+ module Racc
35
+ class ParseError < StandardError; end
36
+ end
37
+ unless defined?(::ParseError)
38
+ ParseError = Racc::ParseError # :nodoc:
39
+ end
40
+
41
+ # Racc is an LALR(1) parser generator.
42
+ # It is written in Ruby itself, and generates Ruby programs.
43
+ #
44
+ # == Command-line Reference
45
+ #
46
+ # racc [-o<var>filename</var>] [--output-file=<var>filename</var>]
47
+ # [-e<var>rubypath</var>] [--executable=<var>rubypath</var>]
48
+ # [-v] [--verbose]
49
+ # [-O<var>filename</var>] [--log-file=<var>filename</var>]
50
+ # [-g] [--debug]
51
+ # [-E] [--embedded]
52
+ # [-l] [--no-line-convert]
53
+ # [-c] [--line-convert-all]
54
+ # [-a] [--no-omit-actions]
55
+ # [-C] [--check-only]
56
+ # [-S] [--output-status]
57
+ # [--version] [--copyright] [--help] <var>grammarfile</var>
58
+ #
59
+ # [+grammarfile+]
60
+ # Racc grammar file. Any extension is permitted.
61
+ # [-o+outfile+, --output-file=+outfile+]
62
+ # A filename for output. default is <+filename+>.tab.rb
63
+ # [-O+filename+, --log-file=+filename+]
64
+ # Place logging output in file +filename+.
65
+ # Default log file name is <+filename+>.output.
66
+ # [-e+rubypath+, --executable=+rubypath+]
67
+ # output executable file(mode 755). where +path+ is the Ruby interpreter.
68
+ # [-v, --verbose]
69
+ # verbose mode. create +filename+.output file, like yacc's y.output file.
70
+ # [-g, --debug]
71
+ # add debug code to parser class. To display debugging information,
72
+ # use this '-g' option and set @yydebug true in parser class.
73
+ # [-E, --embedded]
74
+ # Output parser which doesn't need runtime files (racc/parser.rb).
75
+ # [-F, --frozen]
76
+ # Output parser which declares frozen_string_literals: true
77
+ # [-C, --check-only]
78
+ # Check syntax of racc grammar file and quit.
79
+ # [-S, --output-status]
80
+ # Print messages time to time while compiling.
81
+ # [-l, --no-line-convert]
82
+ # turns off line number converting.
83
+ # [-c, --line-convert-all]
84
+ # Convert line number of actions, inner, header and footer.
85
+ # [-a, --no-omit-actions]
86
+ # Call all actions, even if an action is empty.
87
+ # [--version]
88
+ # print Racc version and quit.
89
+ # [--copyright]
90
+ # Print copyright and quit.
91
+ # [--help]
92
+ # Print usage and quit.
93
+ #
94
+ # == Generating Parser Using Racc
95
+ #
96
+ # To compile Racc grammar file, simply type:
97
+ #
98
+ # $ racc parse.y
99
+ #
100
+ # This creates Ruby script file "parse.tab.y". The -o option can change the output filename.
101
+ #
102
+ # == Writing A Racc Grammar File
103
+ #
104
+ # If you want your own parser, you have to write a grammar file.
105
+ # A grammar file contains the name of your parser class, grammar for the parser,
106
+ # user code, and anything else.
107
+ # When writing a grammar file, yacc's knowledge is helpful.
108
+ # If you have not used yacc before, Racc is not too difficult.
109
+ #
110
+ # Here's an example Racc grammar file.
111
+ #
112
+ # class Calcparser
113
+ # rule
114
+ # target: exp { print val[0] }
115
+ #
116
+ # exp: exp '+' exp
117
+ # | exp '*' exp
118
+ # | '(' exp ')'
119
+ # | NUMBER
120
+ # end
121
+ #
122
+ # Racc grammar files resemble yacc files.
123
+ # But (of course), this is Ruby code.
124
+ # yacc's $$ is the 'result', $0, $1... is
125
+ # an array called 'val', and $-1, $-2... is an array called '_values'.
126
+ #
127
+ # See the {Grammar File Reference}[rdoc-ref:lib/racc/rdoc/grammar.en.rdoc] for
128
+ # more information on grammar files.
129
+ #
130
+ # == Parser
131
+ #
132
+ # Then you must prepare the parse entry method. There are two types of
133
+ # parse methods in Racc, Racc::Parser#do_parse and Racc::Parser#yyparse
134
+ #
135
+ # Racc::Parser#do_parse is simple.
136
+ #
137
+ # It's yyparse() of yacc, and Racc::Parser#next_token is yylex().
138
+ # This method must returns an array like [TOKENSYMBOL, ITS_VALUE].
139
+ # EOF is [false, false].
140
+ # (TOKENSYMBOL is a Ruby symbol (taken from String#intern) by default.
141
+ # If you want to change this, see the grammar reference.
142
+ #
143
+ # Racc::Parser#yyparse is little complicated, but useful.
144
+ # It does not use Racc::Parser#next_token, instead it gets tokens from any iterator.
145
+ #
146
+ # For example, <code>yyparse(obj, :scan)</code> causes
147
+ # calling +obj#scan+, and you can return tokens by yielding them from +obj#scan+.
148
+ #
149
+ # == Debugging
150
+ #
151
+ # When debugging, "-v" or/and the "-g" option is helpful.
152
+ #
153
+ # "-v" creates verbose log file (.output).
154
+ # "-g" creates a "Verbose Parser".
155
+ # Verbose Parser prints the internal status when parsing.
156
+ # But it's _not_ automatic.
157
+ # You must use -g option and set +@yydebug+ to +true+ in order to get output.
158
+ # -g option only creates the verbose parser.
159
+ #
160
+ # === Racc reported syntax error.
161
+ #
162
+ # Isn't there too many "end"?
163
+ # grammar of racc file is changed in v0.10.
164
+ #
165
+ # Racc does not use '%' mark, while yacc uses huge number of '%' marks..
166
+ #
167
+ # === Racc reported "XXXX conflicts".
168
+ #
169
+ # Try "racc -v xxxx.y".
170
+ # It causes producing racc's internal log file, xxxx.output.
171
+ #
172
+ # === Generated parsers does not work correctly
173
+ #
174
+ # Try "racc -g xxxx.y".
175
+ # This command let racc generate "debugging parser".
176
+ # Then set @yydebug=true in your parser.
177
+ # It produces a working log of your parser.
178
+ #
179
+ # == Re-distributing Racc runtime
180
+ #
181
+ # A parser, which is created by Racc, requires the Racc runtime module;
182
+ # racc/parser.rb.
183
+ #
184
+ # Ruby 1.8.x comes with Racc runtime module,
185
+ # you need NOT distribute Racc runtime files.
186
+ #
187
+ # If you want to include the Racc runtime module with your parser.
188
+ # This can be done by using '-E' option:
189
+ #
190
+ # $ racc -E -omyparser.rb myparser.y
191
+ #
192
+ # This command creates myparser.rb which `includes' Racc runtime.
193
+ # Only you must do is to distribute your parser file (myparser.rb).
194
+ #
195
+ # Note: parser.rb is ruby license, but your parser is not.
196
+ # Your own parser is completely yours.
197
+ module Racc
198
+
199
+ unless defined?(Racc_No_Extensions)
200
+ Racc_No_Extensions = false # :nodoc:
201
+ end
202
+
203
+ class Parser
204
+
205
+ Racc_Runtime_Version = ::Racc::VERSION
206
+ Racc_Runtime_Core_Version_R = ::Racc::VERSION
207
+
208
+ begin
209
+ if Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
210
+ require 'jruby'
211
+ require 'racc/cparse-jruby.jar'
212
+ com.headius.racc.Cparse.new.load(JRuby.runtime, false)
213
+ else
214
+ require 'racc/cparse'
215
+ end
216
+
217
+ unless new.respond_to?(:_racc_do_parse_c, true)
218
+ raise LoadError, 'old cparse.so'
219
+ end
220
+ if Racc_No_Extensions
221
+ raise LoadError, 'selecting ruby version of racc runtime core'
222
+ end
223
+
224
+ Racc_Main_Parsing_Routine = :_racc_do_parse_c # :nodoc:
225
+ Racc_YY_Parse_Method = :_racc_yyparse_c # :nodoc:
226
+ Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_C # :nodoc:
227
+ Racc_Runtime_Type = 'c' # :nodoc:
228
+ rescue LoadError
229
+ Racc_Main_Parsing_Routine = :_racc_do_parse_rb
230
+ Racc_YY_Parse_Method = :_racc_yyparse_rb
231
+ Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_R
232
+ Racc_Runtime_Type = 'ruby'
233
+ end
234
+
235
+ def Parser.racc_runtime_type # :nodoc:
236
+ Racc_Runtime_Type
237
+ end
238
+
239
+ def _racc_setup
240
+ @yydebug = false unless self.class::Racc_debug_parser
241
+ @yydebug = false unless defined?(@yydebug)
242
+ if @yydebug
243
+ @racc_debug_out = $stderr unless defined?(@racc_debug_out)
244
+ @racc_debug_out ||= $stderr
245
+ end
246
+ arg = self.class::Racc_arg
247
+ arg[13] = true if arg.size < 14
248
+ arg
249
+ end
250
+
251
+ def _racc_init_sysvars
252
+ @racc_state = [0]
253
+ @racc_tstack = []
254
+ @racc_vstack = []
255
+
256
+ @racc_t = nil
257
+ @racc_val = nil
258
+
259
+ @racc_read_next = true
260
+
261
+ @racc_user_yyerror = false
262
+ @racc_error_status = 0
263
+ end
264
+
265
+ # The entry point of the parser. This method is used with #next_token.
266
+ # If Racc wants to get token (and its value), calls next_token.
267
+ #
268
+ # Example:
269
+ # def parse
270
+ # @q = [[1,1],
271
+ # [2,2],
272
+ # [3,3],
273
+ # [false, '$']]
274
+ # do_parse
275
+ # end
276
+ #
277
+ # def next_token
278
+ # @q.shift
279
+ # end
280
+ class_eval <<~RUBY, __FILE__, __LINE__ + 1
281
+ def do_parse
282
+ #{Racc_Main_Parsing_Routine}(_racc_setup(), false)
283
+ end
284
+ RUBY
285
+
286
+ # The method to fetch next token.
287
+ # If you use #do_parse method, you must implement #next_token.
288
+ #
289
+ # The format of return value is [TOKEN_SYMBOL, VALUE].
290
+ # +token-symbol+ is represented by Ruby's symbol by default, e.g. :IDENT
291
+ # for 'IDENT'. ";" (String) for ';'.
292
+ #
293
+ # The final symbol (End of file) must be false.
294
+ def next_token
295
+ raise NotImplementedError, "#{self.class}\#next_token is not defined"
296
+ end
297
+
298
+ def _racc_do_parse_rb(arg, in_debug)
299
+ action_table, action_check, action_default, action_pointer,
300
+ _, _, _, _,
301
+ _, _, token_table, * = arg
302
+
303
+ _racc_init_sysvars
304
+ tok = act = i = nil
305
+
306
+ catch(:racc_end_parse) {
307
+ while true
308
+ if i = action_pointer[@racc_state[-1]]
309
+ if @racc_read_next
310
+ if @racc_t != 0 # not EOF
311
+ tok, @racc_val = next_token()
312
+ unless tok # EOF
313
+ @racc_t = 0
314
+ else
315
+ @racc_t = (token_table[tok] or 1) # error token
316
+ end
317
+ racc_read_token(@racc_t, tok, @racc_val) if @yydebug
318
+ @racc_read_next = false
319
+ end
320
+ end
321
+ i += @racc_t
322
+ unless i >= 0 and
323
+ act = action_table[i] and
324
+ action_check[i] == @racc_state[-1]
325
+ act = action_default[@racc_state[-1]]
326
+ end
327
+ else
328
+ act = action_default[@racc_state[-1]]
329
+ end
330
+ while act = _racc_evalact(act, arg)
331
+ ;
332
+ end
333
+ end
334
+ }
335
+ end
336
+
337
+ # Another entry point for the parser.
338
+ # If you use this method, you must implement RECEIVER#METHOD_ID method.
339
+ #
340
+ # RECEIVER#METHOD_ID is a method to get next token.
341
+ # It must 'yield' the token, which format is [TOKEN-SYMBOL, VALUE].
342
+ class_eval <<~RUBY, __FILE__, __LINE__ + 1
343
+ def yyparse(recv, mid)
344
+ #{Racc_YY_Parse_Method}(recv, mid, _racc_setup(), false)
345
+ end
346
+ RUBY
347
+
348
+ def _racc_yyparse_rb(recv, mid, arg, c_debug)
349
+ action_table, action_check, action_default, action_pointer,
350
+ _, _, _, _,
351
+ _, _, token_table, * = arg
352
+
353
+ _racc_init_sysvars
354
+
355
+ catch(:racc_end_parse) {
356
+ until i = action_pointer[@racc_state[-1]]
357
+ while act = _racc_evalact(action_default[@racc_state[-1]], arg)
358
+ ;
359
+ end
360
+ end
361
+ recv.__send__(mid) do |tok, val|
362
+ unless tok
363
+ @racc_t = 0
364
+ else
365
+ @racc_t = (token_table[tok] or 1) # error token
366
+ end
367
+ @racc_val = val
368
+ @racc_read_next = false
369
+
370
+ i += @racc_t
371
+ unless i >= 0 and
372
+ act = action_table[i] and
373
+ action_check[i] == @racc_state[-1]
374
+ act = action_default[@racc_state[-1]]
375
+ end
376
+ while act = _racc_evalact(act, arg)
377
+ ;
378
+ end
379
+
380
+ while !(i = action_pointer[@racc_state[-1]]) ||
381
+ ! @racc_read_next ||
382
+ @racc_t == 0 # $
383
+ unless i and i += @racc_t and
384
+ i >= 0 and
385
+ act = action_table[i] and
386
+ action_check[i] == @racc_state[-1]
387
+ act = action_default[@racc_state[-1]]
388
+ end
389
+ while act = _racc_evalact(act, arg)
390
+ ;
391
+ end
392
+ end
393
+ end
394
+ }
395
+ end
396
+
397
+ ###
398
+ ### common
399
+ ###
400
+
401
+ def _racc_evalact(act, arg)
402
+ action_table, action_check, _, action_pointer,
403
+ _, _, _, _,
404
+ _, _, _, shift_n,
405
+ reduce_n, * = arg
406
+ nerr = 0 # tmp
407
+
408
+ if act > 0 and act < shift_n
409
+ #
410
+ # shift
411
+ #
412
+ if @racc_error_status > 0
413
+ @racc_error_status -= 1 unless @racc_t <= 1 # error token or EOF
414
+ end
415
+ @racc_vstack.push @racc_val
416
+ @racc_state.push act
417
+ @racc_read_next = true
418
+ if @yydebug
419
+ @racc_tstack.push @racc_t
420
+ racc_shift @racc_t, @racc_tstack, @racc_vstack
421
+ end
422
+
423
+ elsif act < 0 and act > -reduce_n
424
+ #
425
+ # reduce
426
+ #
427
+ code = catch(:racc_jump) {
428
+ @racc_state.push _racc_do_reduce(arg, act)
429
+ false
430
+ }
431
+ if code
432
+ case code
433
+ when 1 # yyerror
434
+ @racc_user_yyerror = true # user_yyerror
435
+ return -reduce_n
436
+ when 2 # yyaccept
437
+ return shift_n
438
+ else
439
+ raise '[Racc Bug] unknown jump code'
440
+ end
441
+ end
442
+
443
+ elsif act == shift_n
444
+ #
445
+ # accept
446
+ #
447
+ racc_accept if @yydebug
448
+ throw :racc_end_parse, @racc_vstack[0]
449
+
450
+ elsif act == -reduce_n
451
+ #
452
+ # error
453
+ #
454
+ case @racc_error_status
455
+ when 0
456
+ unless arg[21] # user_yyerror
457
+ nerr += 1
458
+ on_error @racc_t, @racc_val, @racc_vstack
459
+ end
460
+ when 3
461
+ if @racc_t == 0 # is $
462
+ # We're at EOF, and another error occurred immediately after
463
+ # attempting auto-recovery
464
+ throw :racc_end_parse, nil
465
+ end
466
+ @racc_read_next = true
467
+ end
468
+ @racc_user_yyerror = false
469
+ @racc_error_status = 3
470
+ while true
471
+ if i = action_pointer[@racc_state[-1]]
472
+ i += 1 # error token
473
+ if i >= 0 and
474
+ (act = action_table[i]) and
475
+ action_check[i] == @racc_state[-1]
476
+ break
477
+ end
478
+ end
479
+ throw :racc_end_parse, nil if @racc_state.size <= 1
480
+ @racc_state.pop
481
+ @racc_vstack.pop
482
+ if @yydebug
483
+ @racc_tstack.pop
484
+ racc_e_pop @racc_state, @racc_tstack, @racc_vstack
485
+ end
486
+ end
487
+ return act
488
+
489
+ else
490
+ raise "[Racc Bug] unknown action #{act.inspect}"
491
+ end
492
+
493
+ racc_next_state(@racc_state[-1], @racc_state) if @yydebug
494
+
495
+ nil
496
+ end
497
+
498
+ def _racc_do_reduce(arg, act)
499
+ _, _, _, _,
500
+ goto_table, goto_check, goto_default, goto_pointer,
501
+ nt_base, reduce_table, _, _,
502
+ _, use_result, * = arg
503
+
504
+ state = @racc_state
505
+ vstack = @racc_vstack
506
+ tstack = @racc_tstack
507
+
508
+ i = act * -3
509
+ len = reduce_table[i]
510
+ reduce_to = reduce_table[i+1]
511
+ method_id = reduce_table[i+2]
512
+ void_array = []
513
+
514
+ tmp_t = tstack[-len, len] if @yydebug
515
+ tmp_v = vstack[-len, len]
516
+ tstack[-len, len] = void_array if @yydebug
517
+ vstack[-len, len] = void_array
518
+ state[-len, len] = void_array
519
+
520
+ # tstack must be updated AFTER method call
521
+ if use_result
522
+ vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
523
+ else
524
+ vstack.push __send__(method_id, tmp_v, vstack)
525
+ end
526
+ tstack.push reduce_to
527
+
528
+ racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug
529
+
530
+ k1 = reduce_to - nt_base
531
+ if i = goto_pointer[k1]
532
+ i += state[-1]
533
+ if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1
534
+ return curstate
535
+ end
536
+ end
537
+ goto_default[k1]
538
+ end
539
+
540
+ # This method is called when a parse error is found.
541
+ #
542
+ # ERROR_TOKEN_ID is an internal ID of token which caused error.
543
+ # You can get string representation of this ID by calling
544
+ # #token_to_str.
545
+ #
546
+ # ERROR_VALUE is a value of error token.
547
+ #
548
+ # value_stack is a stack of symbol values.
549
+ # DO NOT MODIFY this object.
550
+ #
551
+ # This method raises ParseError by default.
552
+ #
553
+ # If this method returns, parsers enter "error recovering mode".
554
+ def on_error(t, val, vstack)
555
+ raise ParseError, sprintf("parse error on value %s (%s)",
556
+ val.inspect, token_to_str(t) || '?')
557
+ end
558
+
559
+ # Enter error recovering mode.
560
+ # This method does not call #on_error.
561
+ def yyerror
562
+ throw :racc_jump, 1
563
+ end
564
+
565
+ # Exit parser.
566
+ # Return value is +Symbol_Value_Stack[0]+.
567
+ def yyaccept
568
+ throw :racc_jump, 2
569
+ end
570
+
571
+ # Leave error recovering mode.
572
+ def yyerrok
573
+ @racc_error_status = 0
574
+ end
575
+
576
+ # For debugging output
577
+ def racc_read_token(t, tok, val)
578
+ @racc_debug_out.print 'read '
579
+ @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
580
+ @racc_debug_out.puts val.inspect
581
+ @racc_debug_out.puts
582
+ end
583
+
584
+ def racc_shift(tok, tstack, vstack)
585
+ @racc_debug_out.puts "shift #{racc_token2str tok}"
586
+ racc_print_stacks tstack, vstack
587
+ @racc_debug_out.puts
588
+ end
589
+
590
+ def racc_reduce(toks, sim, tstack, vstack)
591
+ out = @racc_debug_out
592
+ out.print 'reduce '
593
+ if toks.empty?
594
+ out.print ' <none>'
595
+ else
596
+ toks.each {|t| out.print ' ', racc_token2str(t) }
597
+ end
598
+ out.puts " --> #{racc_token2str(sim)}"
599
+ racc_print_stacks tstack, vstack
600
+ @racc_debug_out.puts
601
+ end
602
+
603
+ def racc_accept
604
+ @racc_debug_out.puts 'accept'
605
+ @racc_debug_out.puts
606
+ end
607
+
608
+ def racc_e_pop(state, tstack, vstack)
609
+ @racc_debug_out.puts 'error recovering mode: pop token'
610
+ racc_print_states state
611
+ racc_print_stacks tstack, vstack
612
+ @racc_debug_out.puts
613
+ end
614
+
615
+ def racc_next_state(curstate, state)
616
+ @racc_debug_out.puts "goto #{curstate}"
617
+ racc_print_states state
618
+ @racc_debug_out.puts
619
+ end
620
+
621
+ def racc_print_stacks(t, v)
622
+ out = @racc_debug_out
623
+ out.print ' ['
624
+ t.each_index do |i|
625
+ out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
626
+ end
627
+ out.puts ' ]'
628
+ end
629
+
630
+ def racc_print_states(s)
631
+ out = @racc_debug_out
632
+ out.print ' ['
633
+ s.each {|st| out.print ' ', st }
634
+ out.puts ' ]'
635
+ end
636
+
637
+ def racc_token2str(tok)
638
+ self.class::Racc_token_to_s_table[tok] or
639
+ raise "[Racc Bug] can't convert token #{tok} to string"
640
+ end
641
+
642
+ # Convert internal ID of token symbol to the string.
643
+ def token_to_str(t)
644
+ self.class::Racc_token_to_s_table[t]
645
+ end
646
+
647
+ end
648
+
649
+ end
650
+
651
+ ...end racc/parser.rb/module_eval...
652
+ end
653
+ ###### racc/parser.rb end
654
+ module Lrama
655
+ class Parser < Racc::Parser
656
+
657
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 428)
658
+
659
+ include Lrama::Report::Duration
660
+
661
+ def initialize(text, path, debug = false, define = {})
662
+ @grammar_file = Lrama::Lexer::GrammarFile.new(path, text)
663
+ @yydebug = debug
664
+ @rule_counter = Lrama::Grammar::Counter.new(0)
665
+ @midrule_action_counter = Lrama::Grammar::Counter.new(1)
666
+ @define = define
667
+ end
668
+
669
+ def parse
670
+ report_duration(:parse) do
671
+ @lexer = Lrama::Lexer.new(@grammar_file)
672
+ @grammar = Lrama::Grammar.new(@rule_counter, @define)
673
+ @precedence_number = 0
674
+ reset_precs
675
+ do_parse
676
+ @grammar
677
+ end
678
+ end
679
+
680
+ def next_token
681
+ @lexer.next_token
682
+ end
683
+
684
+ def on_error(error_token_id, error_value, value_stack)
685
+ if error_value.is_a?(Lrama::Lexer::Token)
686
+ location = error_value.location
687
+ value = "'#{error_value.s_value}'"
688
+ else
689
+ location = @lexer.location
690
+ value = error_value.inspect
691
+ end
692
+
693
+ error_message = "parse error on value #{value} (#{token_to_str(error_token_id) || '?'})"
694
+
695
+ raise_parse_error(error_message, location)
696
+ end
697
+
698
+ def on_action_error(error_message, error_value)
699
+ if error_value.is_a?(Lrama::Lexer::Token)
700
+ location = error_value.location
701
+ else
702
+ location = @lexer.location
703
+ end
704
+
705
+ raise_parse_error(error_message, location)
706
+ end
707
+
708
+ private
709
+
710
+ def reset_precs
711
+ @prec_seen = false
712
+ @code_after_prec = false
713
+ end
714
+
715
+ def begin_c_declaration(end_symbol)
716
+ @lexer.status = :c_declaration
717
+ @lexer.end_symbol = end_symbol
718
+ end
719
+
720
+ def end_c_declaration
721
+ @lexer.status = :initial
722
+ @lexer.end_symbol = nil
723
+ end
724
+
725
+ def raise_parse_error(error_message, location)
726
+ raise ParseError, location.generate_error_message(error_message)
727
+ end
728
+ ...end parser.y/module_eval...
729
+ ##### State transition tables begin ###
730
+
731
+ racc_action_table = [
732
+ 89, 49, 90, 167, 49, 101, 173, 49, 101, 167,
733
+ 49, 101, 173, 6, 101, 80, 49, 49, 48, 48,
734
+ 41, 76, 76, 49, 49, 48, 48, 42, 76, 76,
735
+ 49, 49, 48, 48, 101, 96, 113, 49, 87, 48,
736
+ 150, 101, 96, 151, 45, 171, 169, 170, 151, 176,
737
+ 170, 91, 169, 170, 81, 176, 170, 20, 24, 25,
738
+ 26, 27, 28, 29, 30, 31, 87, 32, 33, 34,
739
+ 35, 36, 37, 38, 39, 49, 4, 48, 5, 101,
740
+ 96, 181, 182, 183, 128, 20, 24, 25, 26, 27,
741
+ 28, 29, 30, 31, 46, 32, 33, 34, 35, 36,
742
+ 37, 38, 39, 11, 12, 13, 14, 15, 16, 17,
743
+ 18, 19, 53, 20, 24, 25, 26, 27, 28, 29,
744
+ 30, 31, 53, 32, 33, 34, 35, 36, 37, 38,
745
+ 39, 11, 12, 13, 14, 15, 16, 17, 18, 19,
746
+ 44, 20, 24, 25, 26, 27, 28, 29, 30, 31,
747
+ 53, 32, 33, 34, 35, 36, 37, 38, 39, 49,
748
+ 4, 48, 5, 101, 96, 49, 49, 48, 48, 101,
749
+ 101, 49, 49, 48, 48, 101, 101, 49, 49, 48,
750
+ 197, 101, 101, 49, 49, 197, 48, 101, 101, 49,
751
+ 49, 197, 48, 101, 181, 182, 183, 128, 204, 210,
752
+ 217, 205, 205, 205, 49, 49, 48, 48, 49, 49,
753
+ 48, 48, 49, 49, 48, 48, 181, 182, 183, 116,
754
+ 117, 56, 53, 53, 53, 53, 53, 62, 63, 64,
755
+ 65, 66, 68, 68, 68, 82, 53, 53, 104, 108,
756
+ 108, 115, 122, 123, 125, 128, 129, 133, 139, 140,
757
+ 141, 142, 144, 145, 101, 154, 139, 157, 154, 161,
758
+ 162, 68, 164, 165, 172, 177, 154, 184, 128, 188,
759
+ 154, 190, 128, 154, 199, 154, 128, 68, 165, 206,
760
+ 165, 68, 68, 215, 128, 68 ]
761
+
762
+ racc_action_check = [
763
+ 47, 153, 47, 153, 159, 153, 159, 178, 159, 178,
764
+ 189, 178, 189, 1, 189, 39, 35, 36, 35, 36,
765
+ 5, 35, 36, 37, 38, 37, 38, 6, 37, 38,
766
+ 59, 74, 59, 74, 59, 59, 74, 60, 45, 60,
767
+ 138, 60, 60, 138, 9, 156, 153, 153, 156, 159,
768
+ 159, 47, 178, 178, 39, 189, 189, 45, 45, 45,
769
+ 45, 45, 45, 45, 45, 45, 83, 45, 45, 45,
770
+ 45, 45, 45, 45, 45, 61, 0, 61, 0, 61,
771
+ 61, 166, 166, 166, 166, 83, 83, 83, 83, 83,
772
+ 83, 83, 83, 83, 11, 83, 83, 83, 83, 83,
773
+ 83, 83, 83, 3, 3, 3, 3, 3, 3, 3,
774
+ 3, 3, 13, 3, 3, 3, 3, 3, 3, 3,
775
+ 3, 3, 14, 3, 3, 3, 3, 3, 3, 3,
776
+ 3, 8, 8, 8, 8, 8, 8, 8, 8, 8,
777
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
778
+ 15, 8, 8, 8, 8, 8, 8, 8, 8, 97,
779
+ 2, 97, 2, 97, 97, 71, 108, 71, 108, 71,
780
+ 108, 109, 169, 109, 169, 109, 169, 176, 184, 176,
781
+ 184, 176, 184, 190, 205, 190, 205, 190, 205, 206,
782
+ 12, 206, 12, 206, 174, 174, 174, 174, 196, 201,
783
+ 214, 196, 201, 214, 69, 76, 69, 76, 104, 105,
784
+ 104, 105, 111, 113, 111, 113, 198, 198, 198, 81,
785
+ 81, 16, 17, 20, 24, 25, 26, 27, 28, 29,
786
+ 30, 31, 32, 33, 34, 40, 51, 56, 67, 70,
787
+ 72, 80, 84, 85, 86, 87, 93, 107, 115, 116,
788
+ 117, 118, 127, 128, 134, 140, 141, 143, 144, 145,
789
+ 146, 150, 151, 152, 158, 163, 165, 167, 168, 171,
790
+ 172, 173, 175, 177, 187, 188, 192, 193, 195, 197,
791
+ 200, 202, 204, 209, 210, 216 ]
792
+
793
+ racc_action_pointer = [
794
+ 66, 13, 150, 90, nil, 13, 27, nil, 118, 35,
795
+ nil, 88, 187, 63, 73, 101, 216, 173, nil, nil,
796
+ 174, nil, nil, nil, 175, 176, 177, 222, 223, 224,
797
+ 225, 226, 224, 225, 226, 13, 14, 20, 21, 10,
798
+ 233, nil, nil, nil, nil, 34, nil, -5, nil, nil,
799
+ nil, 187, nil, nil, nil, nil, 188, nil, nil, 27,
800
+ 34, 72, nil, nil, nil, nil, nil, 230, nil, 201,
801
+ 231, 162, 232, nil, 28, nil, 202, nil, nil, nil,
802
+ 200, 215, nil, 62, 233, 221, 222, 191, nil, nil,
803
+ nil, nil, nil, 244, nil, nil, nil, 156, nil, nil,
804
+ nil, nil, nil, nil, 205, 206, nil, 241, 163, 168,
805
+ nil, 209, nil, 210, nil, 243, 206, 209, 240, nil,
806
+ nil, nil, nil, nil, nil, nil, nil, 209, 248, nil,
807
+ nil, nil, nil, nil, 247, nil, nil, nil, -2, nil,
808
+ 208, 251, nil, 255, 211, 204, 210, nil, nil, nil,
809
+ 253, 257, 217, -2, nil, nil, 3, nil, 218, 1,
810
+ nil, nil, nil, 222, nil, 219, 30, 226, 214, 169,
811
+ nil, 226, 223, 230, 143, 218, 174, 226, 4, nil,
812
+ nil, nil, nil, nil, 175, nil, nil, 272, 228, 7,
813
+ 180, nil, 222, 269, nil, 232, 156, 238, 165, nil,
814
+ 234, 157, 273, nil, 274, 181, 186, nil, nil, 233,
815
+ 230, nil, nil, nil, 158, nil, 277, nil, nil ]
816
+
817
+ racc_action_default = [
818
+ -1, -128, -1, -3, -10, -128, -128, -2, -3, -128,
819
+ -16, -128, -128, -128, -128, -128, -128, -128, -24, -25,
820
+ -128, -32, -33, -34, -128, -128, -128, -128, -128, -128,
821
+ -128, -128, -50, -50, -50, -128, -128, -128, -128, -128,
822
+ -128, -13, 219, -4, -26, -128, -17, -123, -93, -94,
823
+ -122, -14, -19, -85, -20, -21, -128, -23, -31, -128,
824
+ -128, -128, -38, -39, -40, -41, -42, -43, -51, -128,
825
+ -44, -128, -45, -46, -88, -90, -128, -47, -48, -49,
826
+ -128, -128, -11, -5, -7, -95, -128, -68, -18, -124,
827
+ -125, -126, -15, -128, -22, -27, -28, -29, -35, -83,
828
+ -84, -127, -36, -37, -128, -52, -54, -56, -128, -79,
829
+ -81, -88, -89, -128, -91, -128, -128, -128, -128, -6,
830
+ -8, -9, -120, -96, -97, -98, -69, -128, -128, -86,
831
+ -30, -55, -53, -57, -76, -82, -80, -92, -128, -62,
832
+ -66, -128, -12, -128, -66, -128, -128, -58, -77, -78,
833
+ -50, -128, -60, -64, -67, -70, -128, -121, -99, -100,
834
+ -102, -119, -87, -128, -63, -66, -68, -93, -68, -128,
835
+ -116, -128, -66, -93, -68, -68, -128, -66, -65, -71,
836
+ -72, -108, -109, -110, -128, -74, -75, -128, -66, -101,
837
+ -128, -103, -68, -50, -107, -59, -128, -93, -111, -117,
838
+ -61, -128, -50, -106, -50, -128, -128, -112, -113, -128,
839
+ -68, -104, -73, -114, -128, -118, -50, -115, -105 ]
840
+
841
+ racc_goto_table = [
842
+ 69, 109, 50, 152, 57, 127, 84, 58, 112, 160,
843
+ 114, 59, 60, 61, 86, 52, 54, 55, 98, 102,
844
+ 103, 159, 106, 110, 175, 74, 74, 74, 74, 138,
845
+ 9, 1, 3, 180, 7, 43, 120, 160, 109, 109,
846
+ 195, 192, 121, 94, 119, 112, 40, 137, 118, 189,
847
+ 47, 200, 86, 92, 175, 156, 130, 131, 132, 107,
848
+ 135, 136, 88, 196, 111, 207, 111, 70, 72, 201,
849
+ 73, 77, 78, 79, 67, 147, 134, 178, 148, 149,
850
+ 93, 146, 124, 166, 179, 214, 185, 158, 208, 174,
851
+ 187, 209, 191, 193, 107, 107, 143, nil, nil, 186,
852
+ nil, 111, nil, 111, nil, nil, 194, nil, 166, nil,
853
+ 202, nil, nil, nil, 198, nil, nil, nil, 163, 174,
854
+ 198, nil, nil, nil, nil, nil, nil, nil, 216, nil,
855
+ nil, nil, nil, nil, nil, 213, 198, nil, nil, nil,
856
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
857
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
858
+ nil, 203, nil, nil, nil, nil, nil, nil, nil, nil,
859
+ 211, nil, 212, nil, nil, nil, nil, nil, nil, nil,
860
+ nil, nil, nil, nil, 218 ]
861
+
862
+ racc_goto_check = [
863
+ 27, 20, 29, 33, 15, 40, 8, 15, 46, 39,
864
+ 46, 15, 15, 15, 12, 16, 16, 16, 22, 22,
865
+ 22, 50, 28, 43, 38, 29, 29, 29, 29, 32,
866
+ 7, 1, 6, 36, 6, 7, 5, 39, 20, 20,
867
+ 33, 36, 9, 15, 8, 46, 10, 46, 11, 50,
868
+ 13, 33, 12, 16, 38, 32, 22, 28, 28, 29,
869
+ 43, 43, 14, 37, 29, 36, 29, 24, 24, 37,
870
+ 25, 25, 25, 25, 23, 30, 31, 34, 41, 42,
871
+ 44, 45, 48, 20, 40, 37, 40, 49, 51, 20,
872
+ 52, 53, 40, 40, 29, 29, 54, nil, nil, 20,
873
+ nil, 29, nil, 29, nil, nil, 20, nil, 20, nil,
874
+ 40, nil, nil, nil, 20, nil, nil, nil, 27, 20,
875
+ 20, nil, nil, nil, nil, nil, nil, nil, 40, nil,
876
+ nil, nil, nil, nil, nil, 20, 20, nil, nil, nil,
877
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
878
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
879
+ nil, 27, nil, nil, nil, nil, nil, nil, nil, nil,
880
+ 27, nil, 27, nil, nil, nil, nil, nil, nil, nil,
881
+ nil, nil, nil, nil, 27 ]
882
+
883
+ racc_goto_pointer = [
884
+ nil, 31, nil, nil, nil, -48, 32, 27, -39, -42,
885
+ 42, -34, -31, 38, 15, -13, 2, nil, nil, nil,
886
+ -70, nil, -41, 42, 34, 35, nil, -32, -47, -10,
887
+ -59, -31, -86, -137, -88, nil, -133, -121, -135, -135,
888
+ -82, -56, -55, -48, 27, -48, -66, nil, -3, -57,
889
+ -123, -110, -80, -108, -26 ]
890
+
891
+ racc_goto_default = [
892
+ nil, nil, 2, 8, 83, nil, nil, nil, nil, nil,
893
+ nil, nil, 10, nil, nil, 51, nil, 21, 22, 23,
894
+ 95, 97, nil, nil, nil, nil, 105, 71, nil, 99,
895
+ nil, nil, nil, nil, 153, 126, nil, nil, 168, 155,
896
+ nil, 100, nil, nil, nil, nil, 75, 85, nil, nil,
897
+ nil, nil, nil, nil, nil ]
898
+
899
+ racc_reduce_table = [
900
+ 0, 0, :racc_error,
901
+ 0, 63, :_reduce_1,
902
+ 2, 63, :_reduce_2,
903
+ 0, 64, :_reduce_3,
904
+ 2, 64, :_reduce_4,
905
+ 1, 65, :_reduce_5,
906
+ 2, 65, :_reduce_6,
907
+ 0, 66, :_reduce_none,
908
+ 1, 66, :_reduce_none,
909
+ 5, 58, :_reduce_none,
910
+ 0, 67, :_reduce_10,
911
+ 0, 68, :_reduce_11,
912
+ 5, 59, :_reduce_12,
913
+ 2, 59, :_reduce_none,
914
+ 1, 73, :_reduce_14,
915
+ 2, 73, :_reduce_15,
916
+ 1, 60, :_reduce_none,
917
+ 2, 60, :_reduce_17,
918
+ 3, 60, :_reduce_18,
919
+ 2, 60, :_reduce_none,
920
+ 2, 60, :_reduce_20,
921
+ 2, 60, :_reduce_21,
922
+ 3, 60, :_reduce_22,
923
+ 2, 60, :_reduce_23,
924
+ 1, 60, :_reduce_24,
925
+ 1, 60, :_reduce_25,
926
+ 2, 60, :_reduce_none,
927
+ 1, 78, :_reduce_27,
928
+ 1, 78, :_reduce_28,
929
+ 1, 79, :_reduce_29,
930
+ 2, 79, :_reduce_30,
931
+ 2, 69, :_reduce_31,
932
+ 1, 69, :_reduce_none,
933
+ 1, 69, :_reduce_none,
934
+ 1, 69, :_reduce_none,
935
+ 3, 69, :_reduce_35,
936
+ 3, 69, :_reduce_36,
937
+ 3, 69, :_reduce_37,
938
+ 2, 69, :_reduce_38,
939
+ 2, 69, :_reduce_39,
940
+ 2, 69, :_reduce_40,
941
+ 2, 69, :_reduce_41,
942
+ 2, 69, :_reduce_42,
943
+ 2, 74, :_reduce_none,
944
+ 2, 74, :_reduce_44,
945
+ 2, 74, :_reduce_45,
946
+ 2, 74, :_reduce_46,
947
+ 2, 74, :_reduce_47,
948
+ 2, 74, :_reduce_48,
949
+ 2, 74, :_reduce_49,
950
+ 0, 84, :_reduce_none,
951
+ 1, 84, :_reduce_none,
952
+ 1, 85, :_reduce_52,
953
+ 2, 85, :_reduce_53,
954
+ 2, 80, :_reduce_54,
955
+ 3, 80, :_reduce_55,
956
+ 0, 88, :_reduce_none,
957
+ 1, 88, :_reduce_none,
958
+ 3, 83, :_reduce_58,
959
+ 8, 75, :_reduce_59,
960
+ 5, 76, :_reduce_60,
961
+ 8, 76, :_reduce_61,
962
+ 1, 89, :_reduce_62,
963
+ 3, 89, :_reduce_63,
964
+ 1, 90, :_reduce_64,
965
+ 3, 90, :_reduce_65,
966
+ 0, 96, :_reduce_none,
967
+ 1, 96, :_reduce_none,
968
+ 0, 97, :_reduce_none,
969
+ 1, 97, :_reduce_none,
970
+ 1, 91, :_reduce_70,
971
+ 3, 91, :_reduce_71,
972
+ 3, 91, :_reduce_72,
973
+ 6, 91, :_reduce_73,
974
+ 3, 91, :_reduce_74,
975
+ 3, 91, :_reduce_75,
976
+ 0, 99, :_reduce_none,
977
+ 1, 99, :_reduce_none,
978
+ 1, 87, :_reduce_78,
979
+ 1, 100, :_reduce_79,
980
+ 2, 100, :_reduce_80,
981
+ 2, 81, :_reduce_81,
982
+ 3, 81, :_reduce_82,
983
+ 1, 77, :_reduce_none,
984
+ 1, 77, :_reduce_none,
985
+ 0, 101, :_reduce_85,
986
+ 0, 102, :_reduce_86,
987
+ 5, 72, :_reduce_87,
988
+ 1, 103, :_reduce_88,
989
+ 2, 103, :_reduce_89,
990
+ 1, 82, :_reduce_90,
991
+ 2, 82, :_reduce_91,
992
+ 3, 82, :_reduce_92,
993
+ 1, 86, :_reduce_93,
994
+ 1, 86, :_reduce_94,
995
+ 0, 105, :_reduce_none,
996
+ 1, 105, :_reduce_none,
997
+ 2, 61, :_reduce_none,
998
+ 2, 61, :_reduce_none,
999
+ 4, 104, :_reduce_99,
1000
+ 1, 106, :_reduce_100,
1001
+ 3, 106, :_reduce_101,
1002
+ 1, 107, :_reduce_102,
1003
+ 3, 107, :_reduce_103,
1004
+ 5, 107, :_reduce_104,
1005
+ 7, 107, :_reduce_105,
1006
+ 4, 107, :_reduce_106,
1007
+ 3, 107, :_reduce_107,
1008
+ 1, 93, :_reduce_108,
1009
+ 1, 93, :_reduce_109,
1010
+ 1, 93, :_reduce_110,
1011
+ 0, 108, :_reduce_none,
1012
+ 1, 108, :_reduce_none,
1013
+ 2, 94, :_reduce_113,
1014
+ 3, 94, :_reduce_114,
1015
+ 4, 94, :_reduce_115,
1016
+ 0, 109, :_reduce_116,
1017
+ 0, 110, :_reduce_117,
1018
+ 5, 95, :_reduce_118,
1019
+ 3, 92, :_reduce_119,
1020
+ 0, 111, :_reduce_120,
1021
+ 3, 62, :_reduce_121,
1022
+ 1, 70, :_reduce_none,
1023
+ 0, 71, :_reduce_none,
1024
+ 1, 71, :_reduce_none,
1025
+ 1, 71, :_reduce_none,
1026
+ 1, 71, :_reduce_none,
1027
+ 1, 98, :_reduce_127 ]
1028
+
1029
+ racc_reduce_n = 128
1030
+
1031
+ racc_shift_n = 219
1032
+
1033
+ racc_token_table = {
1034
+ false => 0,
1035
+ :error => 1,
1036
+ :C_DECLARATION => 2,
1037
+ :CHARACTER => 3,
1038
+ :IDENT_COLON => 4,
1039
+ :IDENTIFIER => 5,
1040
+ :INTEGER => 6,
1041
+ :STRING => 7,
1042
+ :TAG => 8,
1043
+ "%%" => 9,
1044
+ "%{" => 10,
1045
+ "%}" => 11,
1046
+ "%require" => 12,
1047
+ "%expect" => 13,
1048
+ "%define" => 14,
1049
+ "%param" => 15,
1050
+ "%lex-param" => 16,
1051
+ "%parse-param" => 17,
1052
+ "%code" => 18,
1053
+ "%initial-action" => 19,
1054
+ "%no-stdlib" => 20,
1055
+ "%locations" => 21,
1056
+ ";" => 22,
1057
+ "%union" => 23,
1058
+ "%destructor" => 24,
1059
+ "%printer" => 25,
1060
+ "%error-token" => 26,
1061
+ "%after-shift" => 27,
1062
+ "%before-reduce" => 28,
1063
+ "%after-reduce" => 29,
1064
+ "%after-shift-error-token" => 30,
1065
+ "%after-pop-stack" => 31,
1066
+ "-temp-group" => 32,
1067
+ "%token" => 33,
1068
+ "%type" => 34,
1069
+ "%nterm" => 35,
1070
+ "%left" => 36,
1071
+ "%right" => 37,
1072
+ "%precedence" => 38,
1073
+ "%nonassoc" => 39,
1074
+ "%rule" => 40,
1075
+ "(" => 41,
1076
+ ")" => 42,
1077
+ ":" => 43,
1078
+ "%inline" => 44,
1079
+ "," => 45,
1080
+ "|" => 46,
1081
+ "%empty" => 47,
1082
+ "%prec" => 48,
1083
+ "{" => 49,
1084
+ "}" => 50,
1085
+ "?" => 51,
1086
+ "+" => 52,
1087
+ "*" => 53,
1088
+ "[" => 54,
1089
+ "]" => 55,
1090
+ "{...}" => 56 }
1091
+
1092
+ racc_nt_base = 57
1093
+
1094
+ racc_use_result_var = true
1095
+
1096
+ Racc_arg = [
1097
+ racc_action_table,
1098
+ racc_action_check,
1099
+ racc_action_default,
1100
+ racc_action_pointer,
1101
+ racc_goto_table,
1102
+ racc_goto_check,
1103
+ racc_goto_default,
1104
+ racc_goto_pointer,
1105
+ racc_nt_base,
1106
+ racc_reduce_table,
1107
+ racc_token_table,
1108
+ racc_shift_n,
1109
+ racc_reduce_n,
1110
+ racc_use_result_var ]
1111
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
1112
+
1113
+ Racc_token_to_s_table = [
1114
+ "$end",
1115
+ "error",
1116
+ "C_DECLARATION",
1117
+ "CHARACTER",
1118
+ "IDENT_COLON",
1119
+ "IDENTIFIER",
1120
+ "INTEGER",
1121
+ "STRING",
1122
+ "TAG",
1123
+ "\"%%\"",
1124
+ "\"%{\"",
1125
+ "\"%}\"",
1126
+ "\"%require\"",
1127
+ "\"%expect\"",
1128
+ "\"%define\"",
1129
+ "\"%param\"",
1130
+ "\"%lex-param\"",
1131
+ "\"%parse-param\"",
1132
+ "\"%code\"",
1133
+ "\"%initial-action\"",
1134
+ "\"%no-stdlib\"",
1135
+ "\"%locations\"",
1136
+ "\";\"",
1137
+ "\"%union\"",
1138
+ "\"%destructor\"",
1139
+ "\"%printer\"",
1140
+ "\"%error-token\"",
1141
+ "\"%after-shift\"",
1142
+ "\"%before-reduce\"",
1143
+ "\"%after-reduce\"",
1144
+ "\"%after-shift-error-token\"",
1145
+ "\"%after-pop-stack\"",
1146
+ "\"-temp-group\"",
1147
+ "\"%token\"",
1148
+ "\"%type\"",
1149
+ "\"%nterm\"",
1150
+ "\"%left\"",
1151
+ "\"%right\"",
1152
+ "\"%precedence\"",
1153
+ "\"%nonassoc\"",
1154
+ "\"%rule\"",
1155
+ "\"(\"",
1156
+ "\")\"",
1157
+ "\":\"",
1158
+ "\"%inline\"",
1159
+ "\",\"",
1160
+ "\"|\"",
1161
+ "\"%empty\"",
1162
+ "\"%prec\"",
1163
+ "\"{\"",
1164
+ "\"}\"",
1165
+ "\"?\"",
1166
+ "\"+\"",
1167
+ "\"*\"",
1168
+ "\"[\"",
1169
+ "\"]\"",
1170
+ "\"{...}\"",
1171
+ "$start",
1172
+ "input",
1173
+ "prologue_declaration",
1174
+ "bison_declaration",
1175
+ "rules_or_grammar_declaration",
1176
+ "epilogue_declaration",
1177
+ "\"-many@prologue_declaration\"",
1178
+ "\"-many@bison_declaration\"",
1179
+ "\"-many1@rules_or_grammar_declaration\"",
1180
+ "\"-option@epilogue_declaration\"",
1181
+ "@1",
1182
+ "@2",
1183
+ "grammar_declaration",
1184
+ "variable",
1185
+ "value",
1186
+ "param",
1187
+ "\"-many1@param\"",
1188
+ "symbol_declaration",
1189
+ "rule_declaration",
1190
+ "inline_declaration",
1191
+ "symbol",
1192
+ "\"-group@symbol|TAG\"",
1193
+ "\"-many1@-group@symbol|TAG\"",
1194
+ "token_declarations",
1195
+ "symbol_declarations",
1196
+ "token_declarations_for_precedence",
1197
+ "token_declaration",
1198
+ "\"-option@TAG\"",
1199
+ "\"-many1@token_declaration\"",
1200
+ "id",
1201
+ "alias",
1202
+ "\"-option@INTEGER\"",
1203
+ "rule_args",
1204
+ "rule_rhs_list",
1205
+ "rule_rhs",
1206
+ "named_ref",
1207
+ "parameterizing_suffix",
1208
+ "parameterizing_args",
1209
+ "midrule_action",
1210
+ "\"-option@%empty\"",
1211
+ "\"-option@named_ref\"",
1212
+ "string_as_id",
1213
+ "\"-option@string_as_id\"",
1214
+ "\"-many1@symbol\"",
1215
+ "@3",
1216
+ "@4",
1217
+ "\"-many1@id\"",
1218
+ "rules",
1219
+ "\"-option@;\"",
1220
+ "rhs_list",
1221
+ "rhs",
1222
+ "\"-option@parameterizing_suffix\"",
1223
+ "@5",
1224
+ "@6",
1225
+ "@7" ]
1226
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
1227
+
1228
+ Racc_debug_parser = true
1229
+
1230
+ ##### State transition tables end #####
1231
+
1232
+ # reduce 0 omitted
1233
+
1234
+ module_eval(<<'.,.,', 'parser.y', 11)
1235
+ def _reduce_1(val, _values, result)
1236
+ result = val[1] ? val[1].unshift(val[0]) : val
1237
+ result
1238
+ end
1239
+ .,.,
1240
+
1241
+ module_eval(<<'.,.,', 'parser.y', 11)
1242
+ def _reduce_2(val, _values, result)
1243
+ result = val[1] ? val[1].unshift(val[0]) : val
1244
+ result
1245
+ end
1246
+ .,.,
1247
+
1248
+ module_eval(<<'.,.,', 'parser.y', 11)
1249
+ def _reduce_3(val, _values, result)
1250
+ result = val[1] ? val[1].unshift(val[0]) : val
1251
+ result
1252
+ end
1253
+ .,.,
1254
+
1255
+ module_eval(<<'.,.,', 'parser.y', 11)
1256
+ def _reduce_4(val, _values, result)
1257
+ result = val[1] ? val[1].unshift(val[0]) : val
1258
+ result
1259
+ end
1260
+ .,.,
1261
+
1262
+ module_eval(<<'.,.,', 'parser.y', 11)
1263
+ def _reduce_5(val, _values, result)
1264
+ result = val[1] ? val[1].unshift(val[0]) : val
1265
+ result
1266
+ end
1267
+ .,.,
1268
+
1269
+ module_eval(<<'.,.,', 'parser.y', 11)
1270
+ def _reduce_6(val, _values, result)
1271
+ result = val[1] ? val[1].unshift(val[0]) : val
1272
+ result
1273
+ end
1274
+ .,.,
1275
+
1276
+ # reduce 7 omitted
1277
+
1278
+ # reduce 8 omitted
1279
+
1280
+ # reduce 9 omitted
1281
+
1282
+ module_eval(<<'.,.,', 'parser.y', 12)
1283
+ def _reduce_10(val, _values, result)
1284
+ begin_c_declaration("%}")
1285
+ @grammar.prologue_first_lineno = @lexer.line
1286
+
1287
+ result
1288
+ end
1289
+ .,.,
1290
+
1291
+ module_eval(<<'.,.,', 'parser.y', 17)
1292
+ def _reduce_11(val, _values, result)
1293
+ end_c_declaration
1294
+
1295
+ result
1296
+ end
1297
+ .,.,
1298
+
1299
+ module_eval(<<'.,.,', 'parser.y', 21)
1300
+ def _reduce_12(val, _values, result)
1301
+ @grammar.prologue = val[2].s_value
1302
+
1303
+ result
1304
+ end
1305
+ .,.,
1306
+
1307
+ # reduce 13 omitted
1308
+
1309
+ module_eval(<<'.,.,', 'parser.y', 54)
1310
+ def _reduce_14(val, _values, result)
1311
+ result = val[1] ? val[1].unshift(val[0]) : val
1312
+ result
1313
+ end
1314
+ .,.,
1315
+
1316
+ module_eval(<<'.,.,', 'parser.y', 54)
1317
+ def _reduce_15(val, _values, result)
1318
+ result = val[1] ? val[1].unshift(val[0]) : val
1319
+ result
1320
+ end
1321
+ .,.,
1322
+
1323
+ # reduce 16 omitted
1324
+
1325
+ module_eval(<<'.,.,', 'parser.y', 26)
1326
+ def _reduce_17(val, _values, result)
1327
+ @grammar.expect = val[1]
1328
+ result
1329
+ end
1330
+ .,.,
1331
+
1332
+ module_eval(<<'.,.,', 'parser.y', 27)
1333
+ def _reduce_18(val, _values, result)
1334
+ @grammar.define[val[1].s_value] = val[2]&.s_value
1335
+ result
1336
+ end
1337
+ .,.,
1338
+
1339
+ # reduce 19 omitted
1340
+
1341
+ module_eval(<<'.,.,', 'parser.y', 31)
1342
+ def _reduce_20(val, _values, result)
1343
+ val[1].each {|token|
1344
+ @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value
1345
+ }
1346
+
1347
+ result
1348
+ end
1349
+ .,.,
1350
+
1351
+ module_eval(<<'.,.,', 'parser.y', 37)
1352
+ def _reduce_21(val, _values, result)
1353
+ val[1].each {|token|
1354
+ @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value
1355
+ }
1356
+
1357
+ result
1358
+ end
1359
+ .,.,
1360
+
1361
+ module_eval(<<'.,.,', 'parser.y', 43)
1362
+ def _reduce_22(val, _values, result)
1363
+ @grammar.add_percent_code(id: val[1], code: val[2])
1364
+
1365
+ result
1366
+ end
1367
+ .,.,
1368
+
1369
+ module_eval(<<'.,.,', 'parser.y', 47)
1370
+ def _reduce_23(val, _values, result)
1371
+ @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[1])
1372
+
1373
+ result
1374
+ end
1375
+ .,.,
1376
+
1377
+ module_eval(<<'.,.,', 'parser.y', 49)
1378
+ def _reduce_24(val, _values, result)
1379
+ @grammar.no_stdlib = true
1380
+ result
1381
+ end
1382
+ .,.,
1383
+
1384
+ module_eval(<<'.,.,', 'parser.y', 50)
1385
+ def _reduce_25(val, _values, result)
1386
+ @grammar.locations = true
1387
+ result
1388
+ end
1389
+ .,.,
1390
+
1391
+ # reduce 26 omitted
1392
+
1393
+ module_eval(<<'.,.,', 'parser.y', 109)
1394
+ def _reduce_27(val, _values, result)
1395
+ result = val
1396
+ result
1397
+ end
1398
+ .,.,
1399
+
1400
+ module_eval(<<'.,.,', 'parser.y', 109)
1401
+ def _reduce_28(val, _values, result)
1402
+ result = val
1403
+ result
1404
+ end
1405
+ .,.,
1406
+
1407
+ module_eval(<<'.,.,', 'parser.y', 109)
1408
+ def _reduce_29(val, _values, result)
1409
+ result = val[1] ? val[1].unshift(val[0]) : val
1410
+ result
1411
+ end
1412
+ .,.,
1413
+
1414
+ module_eval(<<'.,.,', 'parser.y', 109)
1415
+ def _reduce_30(val, _values, result)
1416
+ result = val[1] ? val[1].unshift(val[0]) : val
1417
+ result
1418
+ end
1419
+ .,.,
1420
+
1421
+ module_eval(<<'.,.,', 'parser.y', 55)
1422
+ def _reduce_31(val, _values, result)
1423
+ @grammar.set_union(
1424
+ Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[1]),
1425
+ val[1].line
1426
+ )
1427
+
1428
+ result
1429
+ end
1430
+ .,.,
1431
+
1432
+ # reduce 32 omitted
1433
+
1434
+ # reduce 33 omitted
1435
+
1436
+ # reduce 34 omitted
1437
+
1438
+ module_eval(<<'.,.,', 'parser.y', 65)
1439
+ def _reduce_35(val, _values, result)
1440
+ @grammar.add_destructor(
1441
+ ident_or_tags: val[2].flatten,
1442
+ token_code: val[1],
1443
+ lineno: val[1].line
1444
+ )
1445
+
1446
+ result
1447
+ end
1448
+ .,.,
1449
+
1450
+ module_eval(<<'.,.,', 'parser.y', 73)
1451
+ def _reduce_36(val, _values, result)
1452
+ @grammar.add_printer(
1453
+ ident_or_tags: val[2].flatten,
1454
+ token_code: val[1],
1455
+ lineno: val[1].line
1456
+ )
1457
+
1458
+ result
1459
+ end
1460
+ .,.,
1461
+
1462
+ module_eval(<<'.,.,', 'parser.y', 81)
1463
+ def _reduce_37(val, _values, result)
1464
+ @grammar.add_error_token(
1465
+ ident_or_tags: val[2].flatten,
1466
+ token_code: val[1],
1467
+ lineno: val[1].line
1468
+ )
1469
+
1470
+ result
1471
+ end
1472
+ .,.,
1473
+
1474
+ module_eval(<<'.,.,', 'parser.y', 89)
1475
+ def _reduce_38(val, _values, result)
1476
+ @grammar.after_shift = val[1]
1477
+
1478
+ result
1479
+ end
1480
+ .,.,
1481
+
1482
+ module_eval(<<'.,.,', 'parser.y', 93)
1483
+ def _reduce_39(val, _values, result)
1484
+ @grammar.before_reduce = val[1]
1485
+
1486
+ result
1487
+ end
1488
+ .,.,
1489
+
1490
+ module_eval(<<'.,.,', 'parser.y', 97)
1491
+ def _reduce_40(val, _values, result)
1492
+ @grammar.after_reduce = val[1]
1493
+
1494
+ result
1495
+ end
1496
+ .,.,
1497
+
1498
+ module_eval(<<'.,.,', 'parser.y', 101)
1499
+ def _reduce_41(val, _values, result)
1500
+ @grammar.after_shift_error_token = val[1]
1501
+
1502
+ result
1503
+ end
1504
+ .,.,
1505
+
1506
+ module_eval(<<'.,.,', 'parser.y', 105)
1507
+ def _reduce_42(val, _values, result)
1508
+ @grammar.after_pop_stack = val[1]
1509
+
1510
+ result
1511
+ end
1512
+ .,.,
1513
+
1514
+ # reduce 43 omitted
1515
+
1516
+ module_eval(<<'.,.,', 'parser.y', 111)
1517
+ def _reduce_44(val, _values, result)
1518
+ val[1].each {|hash|
1519
+ hash[:tokens].each {|id|
1520
+ @grammar.add_type(id: id, tag: hash[:tag])
1521
+ }
1522
+ }
1523
+
1524
+ result
1525
+ end
1526
+ .,.,
1527
+
1528
+ module_eval(<<'.,.,', 'parser.y', 119)
1529
+ def _reduce_45(val, _values, result)
1530
+ val[1].each {|hash|
1531
+ hash[:tokens].each {|id|
1532
+ if @grammar.find_term_by_s_value(id.s_value)
1533
+ on_action_error("symbol #{id.s_value} redeclared as a nonterminal", id)
1534
+ else
1535
+ @grammar.add_type(id: id, tag: hash[:tag])
1536
+ end
1537
+ }
1538
+ }
1539
+
1540
+ result
1541
+ end
1542
+ .,.,
1543
+
1544
+ module_eval(<<'.,.,', 'parser.y', 131)
1545
+ def _reduce_46(val, _values, result)
1546
+ val[1].each {|hash|
1547
+ hash[:tokens].each {|id|
1548
+ sym = @grammar.add_term(id: id)
1549
+ @grammar.add_left(sym, @precedence_number)
1550
+ }
1551
+ }
1552
+ @precedence_number += 1
1553
+
1554
+ result
1555
+ end
1556
+ .,.,
1557
+
1558
+ module_eval(<<'.,.,', 'parser.y', 141)
1559
+ def _reduce_47(val, _values, result)
1560
+ val[1].each {|hash|
1561
+ hash[:tokens].each {|id|
1562
+ sym = @grammar.add_term(id: id)
1563
+ @grammar.add_right(sym, @precedence_number)
1564
+ }
1565
+ }
1566
+ @precedence_number += 1
1567
+
1568
+ result
1569
+ end
1570
+ .,.,
1571
+
1572
+ module_eval(<<'.,.,', 'parser.y', 151)
1573
+ def _reduce_48(val, _values, result)
1574
+ val[1].each {|hash|
1575
+ hash[:tokens].each {|id|
1576
+ sym = @grammar.add_term(id: id)
1577
+ @grammar.add_precedence(sym, @precedence_number)
1578
+ }
1579
+ }
1580
+ @precedence_number += 1
1581
+
1582
+ result
1583
+ end
1584
+ .,.,
1585
+
1586
+ module_eval(<<'.,.,', 'parser.y', 161)
1587
+ def _reduce_49(val, _values, result)
1588
+ val[1].each {|hash|
1589
+ hash[:tokens].each {|id|
1590
+ sym = @grammar.add_term(id: id)
1591
+ @grammar.add_nonassoc(sym, @precedence_number)
1592
+ }
1593
+ }
1594
+ @precedence_number += 1
1595
+
1596
+ result
1597
+ end
1598
+ .,.,
1599
+
1600
+ # reduce 50 omitted
1601
+
1602
+ # reduce 51 omitted
1603
+
1604
+ module_eval(<<'.,.,', 'parser.y', 184)
1605
+ def _reduce_52(val, _values, result)
1606
+ result = val[1] ? val[1].unshift(val[0]) : val
1607
+ result
1608
+ end
1609
+ .,.,
1610
+
1611
+ module_eval(<<'.,.,', 'parser.y', 184)
1612
+ def _reduce_53(val, _values, result)
1613
+ result = val[1] ? val[1].unshift(val[0]) : val
1614
+ result
1615
+ end
1616
+ .,.,
1617
+
1618
+ module_eval(<<'.,.,', 'parser.y', 172)
1619
+ def _reduce_54(val, _values, result)
1620
+ val[1].each {|token_declaration|
1621
+ @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true)
1622
+ }
1623
+
1624
+ result
1625
+ end
1626
+ .,.,
1627
+
1628
+ module_eval(<<'.,.,', 'parser.y', 178)
1629
+ def _reduce_55(val, _values, result)
1630
+ val[2].each {|token_declaration|
1631
+ @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true)
1632
+ }
1633
+
1634
+ result
1635
+ end
1636
+ .,.,
1637
+
1638
+ # reduce 56 omitted
1639
+
1640
+ # reduce 57 omitted
1641
+
1642
+ module_eval(<<'.,.,', 'parser.y', 183)
1643
+ def _reduce_58(val, _values, result)
1644
+ result = val
1645
+ result
1646
+ end
1647
+ .,.,
1648
+
1649
+ module_eval(<<'.,.,', 'parser.y', 187)
1650
+ def _reduce_59(val, _values, result)
1651
+ rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[7], tag: val[5])
1652
+ @grammar.add_parameterizing_rule(rule)
1653
+
1654
+ result
1655
+ end
1656
+ .,.,
1657
+
1658
+ module_eval(<<'.,.,', 'parser.y', 193)
1659
+ def _reduce_60(val, _values, result)
1660
+ rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, [], val[4], is_inline: true)
1661
+ @grammar.add_parameterizing_rule(rule)
1662
+
1663
+ result
1664
+ end
1665
+ .,.,
1666
+
1667
+ module_eval(<<'.,.,', 'parser.y', 198)
1668
+ def _reduce_61(val, _values, result)
1669
+ rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, val[4], val[7], is_inline: true)
1670
+ @grammar.add_parameterizing_rule(rule)
1671
+
1672
+ result
1673
+ end
1674
+ .,.,
1675
+
1676
+ module_eval(<<'.,.,', 'parser.y', 202)
1677
+ def _reduce_62(val, _values, result)
1678
+ result = [val[0]]
1679
+ result
1680
+ end
1681
+ .,.,
1682
+
1683
+ module_eval(<<'.,.,', 'parser.y', 203)
1684
+ def _reduce_63(val, _values, result)
1685
+ result = val[0].append(val[2])
1686
+ result
1687
+ end
1688
+ .,.,
1689
+
1690
+ module_eval(<<'.,.,', 'parser.y', 207)
1691
+ def _reduce_64(val, _values, result)
1692
+ builder = val[0]
1693
+ result = [builder]
1694
+
1695
+ result
1696
+ end
1697
+ .,.,
1698
+
1699
+ module_eval(<<'.,.,', 'parser.y', 212)
1700
+ def _reduce_65(val, _values, result)
1701
+ builder = val[2]
1702
+ result = val[0].append(builder)
1703
+
1704
+ result
1705
+ end
1706
+ .,.,
1707
+
1708
+ # reduce 66 omitted
1709
+
1710
+ # reduce 67 omitted
1711
+
1712
+ # reduce 68 omitted
1713
+
1714
+ # reduce 69 omitted
1715
+
1716
+ module_eval(<<'.,.,', 'parser.y', 218)
1717
+ def _reduce_70(val, _values, result)
1718
+ reset_precs
1719
+ result = Grammar::ParameterizingRule::Rhs.new
1720
+
1721
+ result
1722
+ end
1723
+ .,.,
1724
+
1725
+ module_eval(<<'.,.,', 'parser.y', 223)
1726
+ def _reduce_71(val, _values, result)
1727
+ token = val[1]
1728
+ token.alias_name = val[2]
1729
+ builder = val[0]
1730
+ builder.symbols << token
1731
+ result = builder
1732
+
1733
+ result
1734
+ end
1735
+ .,.,
1736
+
1737
+ module_eval(<<'.,.,', 'parser.y', 231)
1738
+ def _reduce_72(val, _values, result)
1739
+ builder = val[0]
1740
+ builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]])
1741
+ result = builder
1742
+
1743
+ result
1744
+ end
1745
+ .,.,
1746
+
1747
+ module_eval(<<'.,.,', 'parser.y', 237)
1748
+ def _reduce_73(val, _values, result)
1749
+ builder = val[0]
1750
+ builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
1751
+ result = builder
1752
+
1753
+ result
1754
+ end
1755
+ .,.,
1756
+
1757
+ module_eval(<<'.,.,', 'parser.y', 243)
1758
+ def _reduce_74(val, _values, result)
1759
+ user_code = val[1]
1760
+ user_code.alias_name = val[2]
1761
+ builder = val[0]
1762
+ builder.user_code = user_code
1763
+ result = builder
1764
+
1765
+ result
1766
+ end
1767
+ .,.,
1768
+
1769
+ module_eval(<<'.,.,', 'parser.y', 251)
1770
+ def _reduce_75(val, _values, result)
1771
+ sym = @grammar.find_symbol_by_id!(val[2])
1772
+ @prec_seen = true
1773
+ builder = val[0]
1774
+ builder.precedence_sym = sym
1775
+ result = builder
1776
+
1777
+ result
1778
+ end
1779
+ .,.,
1780
+
1781
+ # reduce 76 omitted
1782
+
1783
+ # reduce 77 omitted
1784
+
1785
+ module_eval(<<'.,.,', 'parser.y', 258)
1786
+ def _reduce_78(val, _values, result)
1787
+ result = val[0].s_value if val[0]
1788
+ result
1789
+ end
1790
+ .,.,
1791
+
1792
+ module_eval(<<'.,.,', 'parser.y', 271)
1793
+ def _reduce_79(val, _values, result)
1794
+ result = val[1] ? val[1].unshift(val[0]) : val
1795
+ result
1796
+ end
1797
+ .,.,
1798
+
1799
+ module_eval(<<'.,.,', 'parser.y', 271)
1800
+ def _reduce_80(val, _values, result)
1801
+ result = val[1] ? val[1].unshift(val[0]) : val
1802
+ result
1803
+ end
1804
+ .,.,
1805
+
1806
+ module_eval(<<'.,.,', 'parser.y', 262)
1807
+ def _reduce_81(val, _values, result)
1808
+ result = if val[0]
1809
+ [{tag: val[0], tokens: val[1]}]
1810
+ else
1811
+ [{tag: nil, tokens: val[1]}]
1812
+ end
1813
+
1814
+ result
1815
+ end
1816
+ .,.,
1817
+
1818
+ module_eval(<<'.,.,', 'parser.y', 268)
1819
+ def _reduce_82(val, _values, result)
1820
+ result = val[0].append({tag: val[1], tokens: val[2]})
1821
+ result
1822
+ end
1823
+ .,.,
1824
+
1825
+ # reduce 83 omitted
1826
+
1827
+ # reduce 84 omitted
1828
+
1829
+ module_eval(<<'.,.,', 'parser.y', 274)
1830
+ def _reduce_85(val, _values, result)
1831
+ begin_c_declaration("}")
1832
+
1833
+ result
1834
+ end
1835
+ .,.,
1836
+
1837
+ module_eval(<<'.,.,', 'parser.y', 278)
1838
+ def _reduce_86(val, _values, result)
1839
+ end_c_declaration
1840
+
1841
+ result
1842
+ end
1843
+ .,.,
1844
+
1845
+ module_eval(<<'.,.,', 'parser.y', 282)
1846
+ def _reduce_87(val, _values, result)
1847
+ result = val[2]
1848
+
1849
+ result
1850
+ end
1851
+ .,.,
1852
+
1853
+ module_eval(<<'.,.,', 'parser.y', 290)
1854
+ def _reduce_88(val, _values, result)
1855
+ result = val[1] ? val[1].unshift(val[0]) : val
1856
+ result
1857
+ end
1858
+ .,.,
1859
+
1860
+ module_eval(<<'.,.,', 'parser.y', 290)
1861
+ def _reduce_89(val, _values, result)
1862
+ result = val[1] ? val[1].unshift(val[0]) : val
1863
+ result
1864
+ end
1865
+ .,.,
1866
+
1867
+ module_eval(<<'.,.,', 'parser.y', 285)
1868
+ def _reduce_90(val, _values, result)
1869
+ result = [{tag: nil, tokens: val[0]}]
1870
+ result
1871
+ end
1872
+ .,.,
1873
+
1874
+ module_eval(<<'.,.,', 'parser.y', 286)
1875
+ def _reduce_91(val, _values, result)
1876
+ result = [{tag: val[0], tokens: val[1]}]
1877
+ result
1878
+ end
1879
+ .,.,
1880
+
1881
+ module_eval(<<'.,.,', 'parser.y', 287)
1882
+ def _reduce_92(val, _values, result)
1883
+ result = val[0].append({tag: val[1], tokens: val[2]})
1884
+ result
1885
+ end
1886
+ .,.,
1887
+
1888
+ module_eval(<<'.,.,', 'parser.y', 289)
1889
+ def _reduce_93(val, _values, result)
1890
+ on_action_error("ident after %prec", val[0]) if @prec_seen
1891
+ result
1892
+ end
1893
+ .,.,
1894
+
1895
+ module_eval(<<'.,.,', 'parser.y', 290)
1896
+ def _reduce_94(val, _values, result)
1897
+ on_action_error("char after %prec", val[0]) if @prec_seen
1898
+ result
1899
+ end
1900
+ .,.,
1901
+
1902
+ # reduce 95 omitted
1903
+
1904
+ # reduce 96 omitted
1905
+
1906
+ # reduce 97 omitted
1907
+
1908
+ # reduce 98 omitted
1909
+
1910
+ module_eval(<<'.,.,', 'parser.y', 298)
1911
+ def _reduce_99(val, _values, result)
1912
+ lhs = val[0]
1913
+ lhs.alias_name = val[1]
1914
+ val[3].each do |builder|
1915
+ builder.lhs = lhs
1916
+ builder.complete_input
1917
+ @grammar.add_rule_builder(builder)
1918
+ end
1919
+
1920
+ result
1921
+ end
1922
+ .,.,
1923
+
1924
+ module_eval(<<'.,.,', 'parser.y', 309)
1925
+ def _reduce_100(val, _values, result)
1926
+ builder = val[0]
1927
+ if !builder.line
1928
+ builder.line = @lexer.line - 1
1929
+ end
1930
+ result = [builder]
1931
+
1932
+ result
1933
+ end
1934
+ .,.,
1935
+
1936
+ module_eval(<<'.,.,', 'parser.y', 317)
1937
+ def _reduce_101(val, _values, result)
1938
+ builder = val[2]
1939
+ if !builder.line
1940
+ builder.line = @lexer.line - 1
1941
+ end
1942
+ result = val[0].append(builder)
1943
+
1944
+ result
1945
+ end
1946
+ .,.,
1947
+
1948
+ module_eval(<<'.,.,', 'parser.y', 326)
1949
+ def _reduce_102(val, _values, result)
1950
+ reset_precs
1951
+ result = @grammar.create_rule_builder(@rule_counter, @midrule_action_counter)
1952
+
1953
+ result
1954
+ end
1955
+ .,.,
1956
+
1957
+ module_eval(<<'.,.,', 'parser.y', 331)
1958
+ def _reduce_103(val, _values, result)
1959
+ token = val[1]
1960
+ token.alias_name = val[2]
1961
+ builder = val[0]
1962
+ builder.add_rhs(token)
1963
+ result = builder
1964
+
1965
+ result
1966
+ end
1967
+ .,.,
1968
+
1969
+ module_eval(<<'.,.,', 'parser.y', 339)
1970
+ def _reduce_104(val, _values, result)
1971
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], alias_name: val[3], location: @lexer.location, args: [val[1]], lhs_tag: val[4])
1972
+ builder = val[0]
1973
+ builder.add_rhs(token)
1974
+ builder.line = val[1].first_line
1975
+ result = builder
1976
+
1977
+ result
1978
+ end
1979
+ .,.,
1980
+
1981
+ module_eval(<<'.,.,', 'parser.y', 347)
1982
+ def _reduce_105(val, _values, result)
1983
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, alias_name: val[5], location: @lexer.location, args: val[3], lhs_tag: val[6])
1984
+ builder = val[0]
1985
+ builder.add_rhs(token)
1986
+ builder.line = val[1].first_line
1987
+ result = builder
1988
+
1989
+ result
1990
+ end
1991
+ .,.,
1992
+
1993
+ module_eval(<<'.,.,', 'parser.y', 355)
1994
+ def _reduce_106(val, _values, result)
1995
+ user_code = val[1]
1996
+ user_code.alias_name = val[2]
1997
+ user_code.tag = val[3]
1998
+ builder = val[0]
1999
+ builder.user_code = user_code
2000
+ result = builder
2001
+
2002
+ result
2003
+ end
2004
+ .,.,
2005
+
2006
+ module_eval(<<'.,.,', 'parser.y', 364)
2007
+ def _reduce_107(val, _values, result)
2008
+ sym = @grammar.find_symbol_by_id!(val[2])
2009
+ @prec_seen = true
2010
+ builder = val[0]
2011
+ builder.precedence_sym = sym
2012
+ result = builder
2013
+
2014
+ result
2015
+ end
2016
+ .,.,
2017
+
2018
+ module_eval(<<'.,.,', 'parser.y', 371)
2019
+ def _reduce_108(val, _values, result)
2020
+ result = "option"
2021
+ result
2022
+ end
2023
+ .,.,
2024
+
2025
+ module_eval(<<'.,.,', 'parser.y', 372)
2026
+ def _reduce_109(val, _values, result)
2027
+ result = "nonempty_list"
2028
+ result
2029
+ end
2030
+ .,.,
2031
+
2032
+ module_eval(<<'.,.,', 'parser.y', 373)
2033
+ def _reduce_110(val, _values, result)
2034
+ result = "list"
2035
+ result
2036
+ end
2037
+ .,.,
2038
+
2039
+ # reduce 111 omitted
2040
+
2041
+ # reduce 112 omitted
2042
+
2043
+ module_eval(<<'.,.,', 'parser.y', 377)
2044
+ def _reduce_113(val, _values, result)
2045
+ result = if val[1]
2046
+ [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[0])]
2047
+ else
2048
+ [val[0]]
2049
+ end
2050
+
2051
+ result
2052
+ end
2053
+ .,.,
2054
+
2055
+ module_eval(<<'.,.,', 'parser.y', 383)
2056
+ def _reduce_114(val, _values, result)
2057
+ result = val[0].append(val[2])
2058
+ result
2059
+ end
2060
+ .,.,
2061
+
2062
+ module_eval(<<'.,.,', 'parser.y', 384)
2063
+ def _reduce_115(val, _values, result)
2064
+ result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[0].s_value, location: @lexer.location, args: val[2])]
2065
+ result
2066
+ end
2067
+ .,.,
2068
+
2069
+ module_eval(<<'.,.,', 'parser.y', 388)
2070
+ def _reduce_116(val, _values, result)
2071
+ if @prec_seen
2072
+ on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
2073
+ @code_after_prec = true
2074
+ end
2075
+ begin_c_declaration("}")
2076
+
2077
+ result
2078
+ end
2079
+ .,.,
2080
+
2081
+ module_eval(<<'.,.,', 'parser.y', 396)
2082
+ def _reduce_117(val, _values, result)
2083
+ end_c_declaration
2084
+
2085
+ result
2086
+ end
2087
+ .,.,
2088
+
2089
+ module_eval(<<'.,.,', 'parser.y', 400)
2090
+ def _reduce_118(val, _values, result)
2091
+ result = val[2]
2092
+
2093
+ result
2094
+ end
2095
+ .,.,
2096
+
2097
+ module_eval(<<'.,.,', 'parser.y', 403)
2098
+ def _reduce_119(val, _values, result)
2099
+ result = val[1].s_value
2100
+ result
2101
+ end
2102
+ .,.,
2103
+
2104
+ module_eval(<<'.,.,', 'parser.y', 407)
2105
+ def _reduce_120(val, _values, result)
2106
+ begin_c_declaration('\Z')
2107
+ @grammar.epilogue_first_lineno = @lexer.line + 1
2108
+
2109
+ result
2110
+ end
2111
+ .,.,
2112
+
2113
+ module_eval(<<'.,.,', 'parser.y', 412)
2114
+ def _reduce_121(val, _values, result)
2115
+ end_c_declaration
2116
+ @grammar.epilogue = val[2].s_value
2117
+
2118
+ result
2119
+ end
2120
+ .,.,
2121
+
2122
+ # reduce 122 omitted
2123
+
2124
+ # reduce 123 omitted
2125
+
2126
+ # reduce 124 omitted
2127
+
2128
+ # reduce 125 omitted
2129
+
2130
+ # reduce 126 omitted
2131
+
2132
+ module_eval(<<'.,.,', 'parser.y', 423)
2133
+ def _reduce_127(val, _values, result)
2134
+ result = Lrama::Lexer::Token::Ident.new(s_value: val[0])
2135
+ result
2136
+ end
2137
+ .,.,
2138
+
2139
+ def _reduce_none(val, _values, result)
2140
+ val[0]
2141
+ end
2142
+
2143
+ end # class Parser
2144
+ end # module Lrama