debase-ruby_core_source 3.3.6 → 4.0.0.preview2

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 (306) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +10 -0
  4. data/Rakefile +3 -1
  5. data/debase-ruby_core_source.gemspec +1 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/builtin.h +7 -1
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/darray.h +1 -3
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/id.h +5 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns.inc +2 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns_info.inc +310 -175
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/basic_operators.h +1 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/bits.h +82 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/encoding.h +2 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/error.h +26 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/fixnum.h +1 -0
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/gc.h +14 -6
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/imemo.h +6 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/io.h +1 -1
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/parse.h +2 -1
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/proc.h +1 -0
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/ractor.h +4 -0
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/sanitizers.h +31 -39
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/string.h +22 -10
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/thread.h +23 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/vm.h +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/method.h +1 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/optunifs.inc +1 -1
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/parse.h +2 -2
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/ast.h +427 -3
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/defines.h +8 -7
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/diagnostic.h +1 -0
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/extension.h +1 -1
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prism.h +47 -11
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/version.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism_compile.h +5 -5
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/ractor_core.h +6 -6
  37. data/lib/debase/ruby_core_source/ruby-3.4.0-p-1/revision.h +5 -0
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/rubyparser.h +3 -2
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/thread_pthread.h +0 -1
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/version.h +1 -1
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm.inc +151 -88
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_core.h +40 -12
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_sync.h +3 -3
  44. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vmtc.inc +2 -0
  45. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/yjit.h +1 -0
  46. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/builtin.h +7 -1
  47. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/darray.h +101 -14
  48. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/debug_counter.h +6 -4
  49. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/dln.h +1 -2
  50. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/eval_intern.h +7 -0
  51. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/id.h +16 -5
  52. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/id_table.h +15 -0
  53. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns.inc +49 -6
  54. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns_info.inc +2432 -721
  55. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/array.h +3 -0
  56. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +2 -0
  57. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
  58. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +82 -0
  59. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
  60. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
  61. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cmdlineopt.h +3 -4
  62. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
  63. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/encoding.h +4 -1
  64. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/error.h +35 -0
  65. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
  66. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/fixnum.h +1 -0
  67. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +54 -30
  68. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/hash.h +3 -0
  69. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/imemo.h +94 -32
  70. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/inits.h +4 -0
  71. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/io.h +30 -7
  72. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/load.h +2 -0
  73. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
  74. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/object.h +1 -1
  75. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/parse.h +18 -4
  76. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/proc.h +1 -1
  77. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/ractor.h +4 -0
  78. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/re.h +7 -2
  79. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/sanitizers.h +88 -39
  80. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
  81. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/signal.h +1 -0
  82. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/st.h +1 -1
  83. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/string.h +39 -18
  84. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/struct.h +38 -5
  85. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/symbol.h +4 -3
  86. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +42 -9
  87. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/time.h +4 -1
  88. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/variable.h +13 -11
  89. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +6 -7
  90. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal.h +0 -3
  91. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/iseq.h +19 -2
  92. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/known_errors.inc +103 -103
  93. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/method.h +18 -2
  94. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node.h +14 -3
  95. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/optunifs.inc +1 -3
  96. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/parse.h +37 -36
  97. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +2495 -507
  98. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/defines.h +61 -7
  99. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/diagnostic.h +31 -6
  100. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/extension.h +5 -5
  101. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/node.h +0 -21
  102. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +186 -6
  103. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/parser.h +85 -40
  104. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prism.h +88 -16
  105. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
  106. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/static_literals.h +3 -2
  107. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_buffer.h +18 -0
  108. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_char.h +1 -2
  109. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_constant_pool.h +0 -8
  110. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_integer.h +26 -15
  111. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_list.h +6 -0
  112. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_newline_list.h +11 -0
  113. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_string.h +39 -13
  114. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/version.h +3 -3
  115. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism_compile.h +30 -12
  116. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/ractor_core.h +47 -134
  117. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regenc.h +9 -4
  118. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/regint.h +0 -5
  119. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regparse.h +2 -2
  120. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h +5 -0
  121. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
  122. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +214 -250
  123. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
  124. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/symbol.h +8 -10
  125. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +36 -27
  126. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/variable.h +8 -20
  127. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm.inc +884 -344
  128. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_callinfo.h +110 -75
  129. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +220 -106
  130. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_exec.h +15 -4
  131. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_insnhelper.h +11 -6
  132. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_sync.h +23 -4
  133. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vmtc.inc +42 -6
  134. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/yjit.h +5 -3
  135. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/zjit.h +47 -0
  136. data/lib/debase/ruby_core_source/version.rb +1 -1
  137. data/lib/debase/ruby_core_source.rb +4 -2
  138. data/test/deduce_source_dir_test.rb +31 -0
  139. metadata +307 -293
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  149. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/addr2line.h +0 -0
  150. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/build_assert/build_assert.h +0 -0
  151. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/check_type/check_type.h +0 -0
  152. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/container_of/container_of.h +0 -0
  153. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/list/list.h +0 -0
  154. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/str/str.h +0 -0
  155. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/constant.h +0 -0
  156. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/debug_counter.h +0 -0
  157. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/dln.h +0 -0
  158. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/encindex.h +0 -0
  159. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/eval_intern.h +0 -0
  160. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/hrtime.h +0 -0
  161. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/id_table.h +0 -0
  162. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/array.h +0 -0
  163. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/bignum.h +0 -0
  164. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/class.h +0 -0
  165. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cmdlineopt.h +0 -0
  166. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compar.h +0 -0
  167. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compile.h +0 -0
  168. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compilers.h +0 -0
  169. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/complex.h +0 -0
  170. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cont.h +0 -0
  171. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/dir.h +0 -0
  172. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enc.h +0 -0
  173. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enum.h +0 -0
  174. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enumerator.h +0 -0
  175. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/eval.h +0 -0
  176. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/file.h +0 -0
  177. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/hash.h +0 -0
  178. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/inits.h +0 -0
  179. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/load.h +0 -0
  180. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/loadpath.h +0 -0
  181. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/math.h +0 -0
  182. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/missing.h +0 -0
  183. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/numeric.h +0 -0
  184. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/object.h +0 -0
  185. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/process.h +0 -0
  186. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/random.h +0 -0
  187. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/range.h +0 -0
  188. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/rational.h +0 -0
  189. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/re.h +0 -0
  190. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/ruby_parser.h +0 -0
  191. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/serial.h +0 -0
  192. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/signal.h +0 -0
  193. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/st.h +0 -0
  194. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/static_assert.h +0 -0
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/struct.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/symbol.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/time.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/transcode.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/util.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/variable.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/warnings.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/iseq.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/known_errors.inc +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node_name.inc +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/optinsn.inc +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_bits.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_node.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_st.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_value.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/encoding.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/node.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/options.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/pack.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/parser.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prettyprint.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/regexp.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/static_literals.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_buffer.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_char.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_constant_pool.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_integer.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_list.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_memchr.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_newline_list.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_string.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strncasecmp.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strpbrk.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/probes_helper.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regenc.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/regint.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regparse.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit_c.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_assert.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_atomic.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/shape.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/siphash.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/symbol.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_none.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_win32.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/timev.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/transcode_data.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/variable.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_call_iseq_optimized.inc +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_callinfo.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_debug.h +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_exec.h +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_insnhelper.h +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_opts.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/addr2line.h +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/build_assert/build_assert.h +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/check_type/check_type.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/container_of/container_of.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/list/list.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/str/str.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/constant.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/encindex.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/hrtime.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compar.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compile.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compilers.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/complex.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/dir.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enc.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enum.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enumerator.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/file.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/loadpath.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/math.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/missing.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/process.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/random.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/range.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/rational.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/ruby_parser.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/serial.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/static_assert.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/transcode.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/util.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/warnings.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node_name.inc +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/optinsn.inc +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_bits.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_node.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_st.h +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_value.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/encoding.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/pack.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prettyprint.h +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_memchr.h +0 -0
  294. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strncasecmp.h +0 -0
  295. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strpbrk.h +0 -0
  296. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/probes_helper.h +0 -0
  297. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ruby_assert.h +0 -0
  298. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/siphash.h +0 -0
  299. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_none.h +0 -0
  300. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_win32.h +0 -0
  301. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/timev.h +0 -0
  302. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/transcode_data.h +0 -0
  303. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/version.h +0 -0
  304. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_call_iseq_optimized.inc +0 -0
  305. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
  306. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_opts.h +0 -0
@@ -224,8 +224,9 @@ typedef struct rb_parser_ast_token {
224
224
  typedef void* rb_parser_ary_data;
225
225
 
226
226
  enum rb_parser_ary_data_type {
227
- PARSER_ARY_DATA_AST_TOKEN,
228
- PARSER_ARY_DATA_SCRIPT_LINE
227
+ PARSER_ARY_DATA_AST_TOKEN = 1,
228
+ PARSER_ARY_DATA_SCRIPT_LINE,
229
+ PARSER_ARY_DATA_NODE
229
230
  };
230
231
 
231
232
  typedef struct rb_parser_ary {
@@ -247,6 +248,7 @@ typedef struct RNode_SCOPE {
247
248
 
248
249
  rb_ast_id_table_t *nd_tbl;
249
250
  struct RNode *nd_body;
251
+ struct RNode *nd_parent;
250
252
  struct RNode_ARGS *nd_args;
251
253
  } rb_node_scope_t;
252
254
 
@@ -264,6 +266,9 @@ typedef struct RNode_IF {
264
266
  struct RNode *nd_cond;
265
267
  struct RNode *nd_body;
266
268
  struct RNode *nd_else;
269
+ rb_code_location_t if_keyword_loc;
270
+ rb_code_location_t then_keyword_loc;
271
+ rb_code_location_t end_keyword_loc;
267
272
  } rb_node_if_t;
268
273
 
269
274
  typedef struct RNode_UNLESS {
@@ -272,6 +277,9 @@ typedef struct RNode_UNLESS {
272
277
  struct RNode *nd_cond;
273
278
  struct RNode *nd_body;
274
279
  struct RNode *nd_else;
280
+ rb_code_location_t keyword_loc;
281
+ rb_code_location_t then_keyword_loc;
282
+ rb_code_location_t end_keyword_loc;
275
283
  } rb_node_unless_t;
276
284
 
277
285
  typedef struct RNode_CASE {
@@ -279,6 +287,8 @@ typedef struct RNode_CASE {
279
287
 
280
288
  struct RNode *nd_head;
281
289
  struct RNode *nd_body;
290
+ rb_code_location_t case_keyword_loc;
291
+ rb_code_location_t end_keyword_loc;
282
292
  } rb_node_case_t;
283
293
 
284
294
  typedef struct RNode_CASE2 {
@@ -286,6 +296,8 @@ typedef struct RNode_CASE2 {
286
296
 
287
297
  struct RNode *nd_head;
288
298
  struct RNode *nd_body;
299
+ rb_code_location_t case_keyword_loc;
300
+ rb_code_location_t end_keyword_loc;
289
301
  } rb_node_case2_t;
290
302
 
291
303
  typedef struct RNode_CASE3 {
@@ -293,6 +305,8 @@ typedef struct RNode_CASE3 {
293
305
 
294
306
  struct RNode *nd_head;
295
307
  struct RNode *nd_body;
308
+ rb_code_location_t case_keyword_loc;
309
+ rb_code_location_t end_keyword_loc;
296
310
  } rb_node_case3_t;
297
311
 
298
312
  typedef struct RNode_WHEN {
@@ -301,6 +315,8 @@ typedef struct RNode_WHEN {
301
315
  struct RNode *nd_head;
302
316
  struct RNode *nd_body;
303
317
  struct RNode *nd_next;
318
+ rb_code_location_t keyword_loc;
319
+ rb_code_location_t then_keyword_loc;
304
320
  } rb_node_when_t;
305
321
 
306
322
  typedef struct RNode_IN {
@@ -309,26 +325,21 @@ typedef struct RNode_IN {
309
325
  struct RNode *nd_head;
310
326
  struct RNode *nd_body;
311
327
  struct RNode *nd_next;
328
+ rb_code_location_t in_keyword_loc;
329
+ rb_code_location_t then_keyword_loc;
330
+ rb_code_location_t operator_loc;
312
331
  } rb_node_in_t;
313
332
 
314
- /* RNode_WHILE and RNode_UNTIL should be same structure */
315
- typedef struct RNode_WHILE {
333
+ typedef struct RNode_LOOP {
316
334
  NODE node;
317
335
 
318
336
  struct RNode *nd_cond;
319
337
  struct RNode *nd_body;
320
338
  long nd_state;
321
- } rb_node_while_t;
339
+ rb_code_location_t keyword_loc;
340
+ rb_code_location_t closing_loc;
341
+ } rb_node_while_t, rb_node_until_t;
322
342
 
323
- typedef struct RNode_UNTIL {
324
- NODE node;
325
-
326
- struct RNode *nd_cond;
327
- struct RNode *nd_body;
328
- long nd_state;
329
- } rb_node_until_t;
330
-
331
- /* RNode_ITER and RNode_FOR should be same structure */
332
343
  typedef struct RNode_ITER {
333
344
  NODE node;
334
345
 
@@ -341,6 +352,10 @@ typedef struct RNode_FOR {
341
352
 
342
353
  struct RNode *nd_body;
343
354
  struct RNode *nd_iter;
355
+ rb_code_location_t for_keyword_loc;
356
+ rb_code_location_t in_keyword_loc;
357
+ rb_code_location_t do_keyword_loc;
358
+ rb_code_location_t end_keyword_loc;
344
359
  } rb_node_for_t;
345
360
 
346
361
  typedef struct RNode_FOR_MASGN {
@@ -349,26 +364,13 @@ typedef struct RNode_FOR_MASGN {
349
364
  struct RNode *nd_var;
350
365
  } rb_node_for_masgn_t;
351
366
 
352
- /* RNode_BREAK, RNode_NEXT and RNode_REDO should be same structure */
353
- typedef struct RNode_BREAK {
354
- NODE node;
355
-
356
- struct RNode *nd_chain;
357
- struct RNode *nd_stts;
358
- } rb_node_break_t;
359
-
360
- typedef struct RNode_NEXT {
367
+ typedef struct RNode_EXITS {
361
368
  NODE node;
362
369
 
363
370
  struct RNode *nd_chain;
364
371
  struct RNode *nd_stts;
365
- } rb_node_next_t;
366
-
367
- typedef struct RNode_REDO {
368
- NODE node;
369
-
370
- struct RNode *nd_chain;
371
- } rb_node_redo_t;
372
+ rb_code_location_t keyword_loc;
373
+ } rb_node_exits_t, rb_node_break_t, rb_node_next_t, rb_node_redo_t;
372
374
 
373
375
  typedef struct RNode_RETRY {
374
376
  NODE node;
@@ -392,6 +394,7 @@ typedef struct RNode_RESBODY {
392
394
  NODE node;
393
395
 
394
396
  struct RNode *nd_args;
397
+ struct RNode *nd_exc_var;
395
398
  struct RNode *nd_body;
396
399
  struct RNode *nd_next;
397
400
  } rb_node_resbody_t;
@@ -403,20 +406,13 @@ typedef struct RNode_ENSURE {
403
406
  struct RNode *nd_ensr;
404
407
  } rb_node_ensure_t;
405
408
 
406
- /* RNode_AND and RNode_OR should be same structure */
407
- typedef struct RNode_AND {
408
- NODE node;
409
-
410
- struct RNode *nd_1st;
411
- struct RNode *nd_2nd;
412
- } rb_node_and_t;
413
-
414
- typedef struct RNode_OR {
409
+ typedef struct {
415
410
  NODE node;
416
411
 
417
412
  struct RNode *nd_1st;
418
413
  struct RNode *nd_2nd;
419
- } rb_node_or_t;
414
+ rb_code_location_t operator_loc;
415
+ } rb_node_and_t, rb_node_or_t;
420
416
 
421
417
  typedef struct RNode_MASGN {
422
418
  NODE node;
@@ -477,6 +473,10 @@ typedef struct RNode_OP_ASGN1 {
477
473
  ID nd_mid;
478
474
  struct RNode *nd_index;
479
475
  struct RNode *nd_rvalue;
476
+ rb_code_location_t call_operator_loc;
477
+ rb_code_location_t opening_loc;
478
+ rb_code_location_t closing_loc;
479
+ rb_code_location_t binary_operator_loc;
480
480
  } rb_node_op_asgn1_t;
481
481
 
482
482
  typedef struct RNode_OP_ASGN2 {
@@ -487,6 +487,9 @@ typedef struct RNode_OP_ASGN2 {
487
487
  ID nd_vid;
488
488
  ID nd_mid;
489
489
  bool nd_aid;
490
+ rb_code_location_t call_operator_loc;
491
+ rb_code_location_t message_loc;
492
+ rb_code_location_t binary_operator_loc;
490
493
  } rb_node_op_asgn2_t;
491
494
 
492
495
  typedef struct RNode_OP_ASGN_AND {
@@ -553,6 +556,9 @@ typedef struct RNode_SUPER {
553
556
  NODE node;
554
557
 
555
558
  struct RNode *nd_args;
559
+ rb_code_location_t keyword_loc;
560
+ rb_code_location_t lparen_loc;
561
+ rb_code_location_t rparen_loc;
556
562
  } rb_node_super_t;
557
563
 
558
564
  typedef struct RNode_ZSUPER {
@@ -568,8 +574,6 @@ typedef struct RNode_ZSUPER {
568
574
  * alen (length of list) | * nd_end (point to the last LIST)
569
575
  * next -----------------+ * next
570
576
 
571
-
572
- RNode_LIST and RNode_VALUES should be same structure
573
577
  */
574
578
  typedef struct RNode_LIST {
575
579
  NODE node;
@@ -586,14 +590,6 @@ typedef struct RNode_ZLIST {
586
590
  NODE node;
587
591
  } rb_node_zlist_t;
588
592
 
589
- typedef struct RNode_VALUES {
590
- NODE node;
591
-
592
- struct RNode *nd_head;
593
- long nd_alen;
594
- struct RNode *nd_next;
595
- } rb_node_values_t;
596
-
597
593
  typedef struct RNode_HASH {
598
594
  NODE node;
599
595
 
@@ -605,12 +601,16 @@ typedef struct RNode_RETURN {
605
601
  NODE node;
606
602
 
607
603
  struct RNode *nd_stts;
604
+ rb_code_location_t keyword_loc;
608
605
  } rb_node_return_t;
609
606
 
610
607
  typedef struct RNode_YIELD {
611
608
  NODE node;
612
609
 
613
610
  struct RNode *nd_head;
611
+ rb_code_location_t keyword_loc;
612
+ rb_code_location_t lparen_loc;
613
+ rb_code_location_t rparen_loc;
614
614
  } rb_node_yield_t;
615
615
 
616
616
  typedef struct RNode_LVAR {
@@ -661,14 +661,6 @@ typedef struct RNode_BACK_REF {
661
661
  long nd_nth;
662
662
  } rb_node_back_ref_t;
663
663
 
664
- /* RNode_MATCH and RNode_REGX should be same structure */
665
- typedef struct RNode_MATCH {
666
- NODE node;
667
-
668
- struct rb_parser_string *string;
669
- int options;
670
- } rb_node_match_t;
671
-
672
664
  typedef struct RNode_MATCH2 {
673
665
  NODE node;
674
666
 
@@ -724,59 +716,48 @@ typedef struct RNode_IMAGINARY {
724
716
  enum rb_numeric_type type;
725
717
  } rb_node_imaginary_t;
726
718
 
727
- /* RNode_STR and RNode_XSTR should be same structure */
728
719
  typedef struct RNode_STR {
729
720
  NODE node;
730
721
 
731
722
  struct rb_parser_string *string;
732
723
  } rb_node_str_t;
733
724
 
734
- /* RNode_DSTR, RNode_DXSTR and RNode_DSYM should be same structure */
725
+ /* NODE_DSTR, NODE_DXSTR, NODE_DREGX, NODE_DSYM */
735
726
  typedef struct RNode_DSTR {
736
727
  NODE node;
737
728
 
738
729
  struct rb_parser_string *string;
739
730
  union {
740
731
  long nd_alen;
732
+ long nd_cflag;
741
733
  struct RNode *nd_end; /* Second dstr node has this structure. See also RNode_LIST */
742
734
  } as;
743
735
  struct RNode_LIST *nd_next;
744
736
  } rb_node_dstr_t;
745
737
 
746
- typedef struct RNode_XSTR {
747
- NODE node;
748
-
749
- struct rb_parser_string *string;
750
- } rb_node_xstr_t;
751
-
752
- typedef struct RNode_DXSTR {
753
- NODE node;
738
+ typedef rb_node_str_t rb_node_xstr_t;
754
739
 
755
- struct rb_parser_string *string;
756
- long nd_alen;
757
- struct RNode_LIST *nd_next;
758
- } rb_node_dxstr_t;
740
+ typedef rb_node_dstr_t rb_node_dxstr_t;
759
741
 
760
742
  typedef struct RNode_EVSTR {
761
743
  NODE node;
762
744
 
763
745
  struct RNode *nd_body;
746
+ rb_code_location_t opening_loc;
747
+ rb_code_location_t closing_loc;
764
748
  } rb_node_evstr_t;
765
749
 
766
- typedef struct RNode_REGX {
750
+ typedef struct RNode_REGX { /* also RNode_MATCH */
767
751
  NODE node;
768
752
 
769
753
  struct rb_parser_string *string;
770
754
  int options;
771
- } rb_node_regx_t;
772
-
773
- typedef struct RNode_DREGX {
774
- NODE node;
755
+ rb_code_location_t opening_loc;
756
+ rb_code_location_t content_loc;
757
+ rb_code_location_t closing_loc;
758
+ } rb_node_regx_t, rb_node_match_t;
775
759
 
776
- struct rb_parser_string *string;
777
- ID nd_cflag;
778
- struct RNode_LIST *nd_next;
779
- } rb_node_dregx_t;
760
+ typedef rb_node_dstr_t rb_node_dregx_t;
780
761
 
781
762
  typedef struct RNode_ONCE {
782
763
  NODE node;
@@ -858,6 +839,7 @@ typedef struct RNode_SPLAT {
858
839
  NODE node;
859
840
 
860
841
  struct RNode *nd_head;
842
+ rb_code_location_t operator_loc;
861
843
  } rb_node_splat_t;
862
844
 
863
845
  typedef struct RNode_BLOCK_PASS {
@@ -865,6 +847,8 @@ typedef struct RNode_BLOCK_PASS {
865
847
 
866
848
  struct RNode *nd_head;
867
849
  struct RNode *nd_body;
850
+ unsigned int forwarding: 1;
851
+ rb_code_location_t operator_loc;
868
852
  } rb_node_block_pass_t;
869
853
 
870
854
  typedef struct RNode_DEFN {
@@ -887,6 +871,7 @@ typedef struct RNode_ALIAS {
887
871
 
888
872
  struct RNode *nd_1st;
889
873
  struct RNode *nd_2nd;
874
+ rb_code_location_t keyword_loc;
890
875
  } rb_node_alias_t;
891
876
 
892
877
  typedef struct RNode_VALIAS {
@@ -894,12 +879,14 @@ typedef struct RNode_VALIAS {
894
879
 
895
880
  ID nd_alias;
896
881
  ID nd_orig;
882
+ rb_code_location_t keyword_loc;
897
883
  } rb_node_valias_t;
898
884
 
899
885
  typedef struct RNode_UNDEF {
900
886
  NODE node;
901
887
 
902
- struct RNode *nd_undef;
888
+ rb_parser_ary_t *nd_undefs;
889
+ rb_code_location_t keyword_loc;
903
890
  } rb_node_undef_t;
904
891
 
905
892
  typedef struct RNode_CLASS {
@@ -908,6 +895,9 @@ typedef struct RNode_CLASS {
908
895
  struct RNode *nd_cpath;
909
896
  struct RNode *nd_body;
910
897
  struct RNode *nd_super;
898
+ rb_code_location_t class_keyword_loc;
899
+ rb_code_location_t inheritance_operator_loc;
900
+ rb_code_location_t end_keyword_loc;
911
901
  } rb_node_class_t;
912
902
 
913
903
  typedef struct RNode_MODULE {
@@ -915,6 +905,8 @@ typedef struct RNode_MODULE {
915
905
 
916
906
  struct RNode *nd_cpath;
917
907
  struct RNode *nd_body;
908
+ rb_code_location_t module_keyword_loc;
909
+ rb_code_location_t end_keyword_loc;
918
910
  } rb_node_module_t;
919
911
 
920
912
  typedef struct RNode_SCLASS {
@@ -922,6 +914,9 @@ typedef struct RNode_SCLASS {
922
914
 
923
915
  struct RNode *nd_recv;
924
916
  struct RNode *nd_body;
917
+ rb_code_location_t class_keyword_loc;
918
+ rb_code_location_t operator_loc;
919
+ rb_code_location_t end_keyword_loc;
925
920
  } rb_node_sclass_t;
926
921
 
927
922
  typedef struct RNode_COLON2 {
@@ -929,42 +924,26 @@ typedef struct RNode_COLON2 {
929
924
 
930
925
  struct RNode *nd_head;
931
926
  ID nd_mid;
927
+ rb_code_location_t delimiter_loc;
928
+ rb_code_location_t name_loc;
932
929
  } rb_node_colon2_t;
933
930
 
934
931
  typedef struct RNode_COLON3 {
935
932
  NODE node;
936
933
 
937
934
  ID nd_mid;
935
+ rb_code_location_t delimiter_loc;
936
+ rb_code_location_t name_loc;
938
937
  } rb_node_colon3_t;
939
938
 
940
- /* RNode_DOT2, RNode_DOT3, RNode_FLIP2 and RNode_FLIP3 should be same structure */
941
- typedef struct RNode_DOT2 {
942
- NODE node;
943
-
944
- struct RNode *nd_beg;
945
- struct RNode *nd_end;
946
- } rb_node_dot2_t;
947
-
948
- typedef struct RNode_DOT3 {
939
+ /* NODE_DOT2, NODE_DOT3, NODE_FLIP2, NODE_FLIP3 */
940
+ typedef struct RNode_DOTS {
949
941
  NODE node;
950
942
 
951
943
  struct RNode *nd_beg;
952
944
  struct RNode *nd_end;
953
- } rb_node_dot3_t;
954
-
955
- typedef struct RNode_FLIP2 {
956
- NODE node;
957
-
958
- struct RNode *nd_beg;
959
- struct RNode *nd_end;
960
- } rb_node_flip2_t;
961
-
962
- typedef struct RNode_FLIP3 {
963
- NODE node;
964
-
965
- struct RNode *nd_beg;
966
- struct RNode *nd_end;
967
- } rb_node_flip3_t;
945
+ rb_code_location_t operator_loc;
946
+ } rb_node_dot2_t, rb_node_dot3_t, rb_node_flip2_t, rb_node_flip3_t;
968
947
 
969
948
  typedef struct RNode_SELF {
970
949
  NODE node;
@@ -992,12 +971,16 @@ typedef struct RNode_DEFINED {
992
971
  NODE node;
993
972
 
994
973
  struct RNode *nd_head;
974
+ rb_code_location_t keyword_loc;
995
975
  } rb_node_defined_t;
996
976
 
997
977
  typedef struct RNode_POSTEXE {
998
978
  NODE node;
999
979
 
1000
980
  struct RNode *nd_body;
981
+ rb_code_location_t keyword_loc;
982
+ rb_code_location_t opening_loc;
983
+ rb_code_location_t closing_loc;
1001
984
  } rb_node_postexe_t;
1002
985
 
1003
986
  typedef struct RNode_SYM {
@@ -1006,13 +989,7 @@ typedef struct RNode_SYM {
1006
989
  struct rb_parser_string *string;
1007
990
  } rb_node_sym_t;
1008
991
 
1009
- typedef struct RNode_DSYM {
1010
- NODE node;
1011
-
1012
- struct rb_parser_string *string;
1013
- long nd_alen;
1014
- struct RNode_LIST *nd_next;
1015
- } rb_node_dsym_t;
992
+ typedef rb_node_dstr_t rb_node_dsym_t;
1016
993
 
1017
994
  typedef struct RNode_ATTRASGN {
1018
995
  NODE node;
@@ -1026,6 +1003,9 @@ typedef struct RNode_LAMBDA {
1026
1003
  NODE node;
1027
1004
 
1028
1005
  struct RNode *nd_body;
1006
+ rb_code_location_t operator_loc;
1007
+ rb_code_location_t opening_loc;
1008
+ rb_code_location_t closing_loc;
1029
1009
  } rb_node_lambda_t;
1030
1010
 
1031
1011
  typedef struct RNode_ARYPTN {
@@ -1073,121 +1053,121 @@ typedef struct RNode_ERROR {
1073
1053
  NODE node;
1074
1054
  } rb_node_error_t;
1075
1055
 
1076
- #define RNODE(obj) ((struct RNode *)(obj))
1077
-
1078
- #define RNODE_SCOPE(node) ((struct RNode_SCOPE *)(node))
1079
- #define RNODE_BLOCK(node) ((struct RNode_BLOCK *)(node))
1080
- #define RNODE_IF(node) ((struct RNode_IF *)(node))
1081
- #define RNODE_UNLESS(node) ((struct RNode_UNLESS *)(node))
1082
- #define RNODE_CASE(node) ((struct RNode_CASE *)(node))
1083
- #define RNODE_CASE2(node) ((struct RNode_CASE2 *)(node))
1084
- #define RNODE_CASE3(node) ((struct RNode_CASE3 *)(node))
1085
- #define RNODE_WHEN(node) ((struct RNode_WHEN *)(node))
1086
- #define RNODE_IN(node) ((struct RNode_IN *)(node))
1087
- #define RNODE_WHILE(node) ((struct RNode_WHILE *)(node))
1088
- #define RNODE_UNTIL(node) ((struct RNode_UNTIL *)(node))
1089
- #define RNODE_ITER(node) ((struct RNode_ITER *)(node))
1090
- #define RNODE_FOR(node) ((struct RNode_FOR *)(node))
1091
- #define RNODE_FOR_MASGN(node) ((struct RNode_FOR_MASGN *)(node))
1092
- #define RNODE_BREAK(node) ((struct RNode_BREAK *)(node))
1093
- #define RNODE_NEXT(node) ((struct RNode_NEXT *)(node))
1094
- #define RNODE_REDO(node) ((struct RNode_REDO *)(node))
1095
- #define RNODE_RETRY(node) ((struct RNode_RETRY *)(node))
1096
- #define RNODE_BEGIN(node) ((struct RNode_BEGIN *)(node))
1097
- #define RNODE_RESCUE(node) ((struct RNode_RESCUE *)(node))
1098
- #define RNODE_RESBODY(node) ((struct RNode_RESBODY *)(node))
1099
- #define RNODE_ENSURE(node) ((struct RNode_ENSURE *)(node))
1100
- #define RNODE_AND(node) ((struct RNode_AND *)(node))
1101
- #define RNODE_OR(node) ((struct RNode_OR *)(node))
1102
- #define RNODE_MASGN(node) ((struct RNode_MASGN *)(node))
1103
- #define RNODE_LASGN(node) ((struct RNode_LASGN *)(node))
1104
- #define RNODE_DASGN(node) ((struct RNode_DASGN *)(node))
1105
- #define RNODE_GASGN(node) ((struct RNode_GASGN *)(node))
1106
- #define RNODE_IASGN(node) ((struct RNode_IASGN *)(node))
1107
- #define RNODE_CDECL(node) ((struct RNode_CDECL *)(node))
1108
- #define RNODE_CVASGN(node) ((struct RNode_CVASGN *)(node))
1109
- #define RNODE_OP_ASGN1(node) ((struct RNode_OP_ASGN1 *)(node))
1110
- #define RNODE_OP_ASGN2(node) ((struct RNode_OP_ASGN2 *)(node))
1111
- #define RNODE_OP_ASGN_AND(node) ((struct RNode_OP_ASGN_AND *)(node))
1112
- #define RNODE_OP_ASGN_OR(node) ((struct RNode_OP_ASGN_OR *)(node))
1113
- #define RNODE_OP_CDECL(node) ((struct RNode_OP_CDECL *)(node))
1114
- #define RNODE_CALL(node) ((struct RNode_CALL *)(node))
1115
- #define RNODE_OPCALL(node) ((struct RNode_OPCALL *)(node))
1116
- #define RNODE_FCALL(node) ((struct RNode_FCALL *)(node))
1117
- #define RNODE_VCALL(node) ((struct RNode_VCALL *)(node))
1118
- #define RNODE_QCALL(node) ((struct RNode_QCALL *)(node))
1119
- #define RNODE_SUPER(node) ((struct RNode_SUPER *)(node))
1120
- #define RNODE_ZSUPER(node) ((struct RNode_ZSUPER *)(node))
1121
- #define RNODE_LIST(node) ((struct RNode_LIST *)(node))
1122
- #define RNODE_ZLIST(node) ((struct RNode_ZLIST *)(node))
1123
- #define RNODE_HASH(node) ((struct RNode_HASH *)(node))
1124
- #define RNODE_RETURN(node) ((struct RNode_RETURN *)(node))
1125
- #define RNODE_YIELD(node) ((struct RNode_YIELD *)(node))
1126
- #define RNODE_LVAR(node) ((struct RNode_LVAR *)(node))
1127
- #define RNODE_DVAR(node) ((struct RNode_DVAR *)(node))
1128
- #define RNODE_GVAR(node) ((struct RNode_GVAR *)(node))
1129
- #define RNODE_IVAR(node) ((struct RNode_IVAR *)(node))
1130
- #define RNODE_CONST(node) ((struct RNode_CONST *)(node))
1131
- #define RNODE_CVAR(node) ((struct RNode_CVAR *)(node))
1132
- #define RNODE_NTH_REF(node) ((struct RNode_NTH_REF *)(node))
1133
- #define RNODE_BACK_REF(node) ((struct RNode_BACK_REF *)(node))
1134
- #define RNODE_MATCH(node) ((struct RNode_MATCH *)(node))
1135
- #define RNODE_MATCH2(node) ((struct RNode_MATCH2 *)(node))
1136
- #define RNODE_MATCH3(node) ((struct RNode_MATCH3 *)(node))
1137
- #define RNODE_INTEGER(node) ((struct RNode_INTEGER *)(node))
1138
- #define RNODE_FLOAT(node) ((struct RNode_FLOAT *)(node))
1139
- #define RNODE_RATIONAL(node) ((struct RNode_RATIONAL *)(node))
1140
- #define RNODE_IMAGINARY(node) ((struct RNode_IMAGINARY *)(node))
1141
- #define RNODE_STR(node) ((struct RNode_STR *)(node))
1142
- #define RNODE_DSTR(node) ((struct RNode_DSTR *)(node))
1143
- #define RNODE_XSTR(node) ((struct RNode_XSTR *)(node))
1144
- #define RNODE_DXSTR(node) ((struct RNode_DXSTR *)(node))
1145
- #define RNODE_EVSTR(node) ((struct RNode_EVSTR *)(node))
1146
- #define RNODE_REGX(node) ((struct RNode_REGX *)(node))
1147
- #define RNODE_DREGX(node) ((struct RNode_DREGX *)(node))
1148
- #define RNODE_ONCE(node) ((struct RNode_ONCE *)(node))
1149
- #define RNODE_ARGS(node) ((struct RNode_ARGS *)(node))
1150
- #define RNODE_ARGS_AUX(node) ((struct RNode_ARGS_AUX *)(node))
1151
- #define RNODE_OPT_ARG(node) ((struct RNode_OPT_ARG *)(node))
1152
- #define RNODE_KW_ARG(node) ((struct RNode_KW_ARG *)(node))
1153
- #define RNODE_POSTARG(node) ((struct RNode_POSTARG *)(node))
1154
- #define RNODE_ARGSCAT(node) ((struct RNode_ARGSCAT *)(node))
1155
- #define RNODE_ARGSPUSH(node) ((struct RNode_ARGSPUSH *)(node))
1156
- #define RNODE_SPLAT(node) ((struct RNode_SPLAT *)(node))
1157
- #define RNODE_BLOCK_PASS(node) ((struct RNode_BLOCK_PASS *)(node))
1158
- #define RNODE_DEFN(node) ((struct RNode_DEFN *)(node))
1159
- #define RNODE_DEFS(node) ((struct RNode_DEFS *)(node))
1160
- #define RNODE_ALIAS(node) ((struct RNode_ALIAS *)(node))
1161
- #define RNODE_VALIAS(node) ((struct RNode_VALIAS *)(node))
1162
- #define RNODE_UNDEF(node) ((struct RNode_UNDEF *)(node))
1163
- #define RNODE_CLASS(node) ((struct RNode_CLASS *)(node))
1164
- #define RNODE_MODULE(node) ((struct RNode_MODULE *)(node))
1165
- #define RNODE_SCLASS(node) ((struct RNode_SCLASS *)(node))
1166
- #define RNODE_COLON2(node) ((struct RNode_COLON2 *)(node))
1167
- #define RNODE_COLON3(node) ((struct RNode_COLON3 *)(node))
1168
- #define RNODE_DOT2(node) ((struct RNode_DOT2 *)(node))
1169
- #define RNODE_DOT3(node) ((struct RNode_DOT3 *)(node))
1170
- #define RNODE_FLIP2(node) ((struct RNode_FLIP2 *)(node))
1171
- #define RNODE_FLIP3(node) ((struct RNode_FLIP3 *)(node))
1172
- #define RNODE_SELF(node) ((struct RNode_SELF *)(node))
1173
- #define RNODE_NIL(node) ((struct RNode_NIL *)(node))
1174
- #define RNODE_TRUE(node) ((struct RNode_TRUE *)(node))
1175
- #define RNODE_FALSE(node) ((struct RNode_FALSE *)(node))
1176
- #define RNODE_ERRINFO(node) ((struct RNode_ERRINFO *)(node))
1177
- #define RNODE_DEFINED(node) ((struct RNode_DEFINED *)(node))
1178
- #define RNODE_POSTEXE(node) ((struct RNode_POSTEXE *)(node))
1179
- #define RNODE_SYM(node) ((struct RNode_SYM *)(node))
1180
- #define RNODE_DSYM(node) ((struct RNode_DSYM *)(node))
1181
- #define RNODE_ATTRASGN(node) ((struct RNode_ATTRASGN *)(node))
1182
- #define RNODE_LAMBDA(node) ((struct RNode_LAMBDA *)(node))
1183
- #define RNODE_ARYPTN(node) ((struct RNode_ARYPTN *)(node))
1184
- #define RNODE_HSHPTN(node) ((struct RNode_HSHPTN *)(node))
1185
- #define RNODE_FNDPTN(node) ((struct RNode_FNDPTN *)(node))
1186
- #define RNODE_LINE(node) ((struct RNode_LINE *)(node))
1187
- #define RNODE_FILE(node) ((struct RNode_FILE *)(node))
1188
- #define RNODE_ENCODING(node) ((struct RNode_ENCODING *)(node))
1189
-
1190
- /* FL : 0..4: T_TYPES, 5: KEEP_WB, 6: PROMOTED, 7: FINALIZE, 8: UNUSED, 9: UNUSED, 10: EXIVAR, 11: FREEZE */
1056
+ #define RNODE(obj) ((NODE *)(obj))
1057
+
1058
+ #define RNODE_SCOPE(node) ((rb_node_scope_t *)(node))
1059
+ #define RNODE_BLOCK(node) ((rb_node_block_t *)(node))
1060
+ #define RNODE_IF(node) ((rb_node_if_t *)(node))
1061
+ #define RNODE_UNLESS(node) ((rb_node_unless_t *)(node))
1062
+ #define RNODE_CASE(node) ((rb_node_case_t *)(node))
1063
+ #define RNODE_CASE2(node) ((rb_node_case2_t *)(node))
1064
+ #define RNODE_CASE3(node) ((rb_node_case3_t *)(node))
1065
+ #define RNODE_WHEN(node) ((rb_node_when_t *)(node))
1066
+ #define RNODE_IN(node) ((rb_node_in_t *)(node))
1067
+ #define RNODE_WHILE(node) ((rb_node_while_t *)(node))
1068
+ #define RNODE_UNTIL(node) ((rb_node_until_t *)(node))
1069
+ #define RNODE_ITER(node) ((rb_node_iter_t *)(node))
1070
+ #define RNODE_FOR(node) ((rb_node_for_t *)(node))
1071
+ #define RNODE_FOR_MASGN(node) ((rb_node_for_masgn_t *)(node))
1072
+ #define RNODE_BREAK(node) ((rb_node_break_t *)(node))
1073
+ #define RNODE_NEXT(node) ((rb_node_next_t *)(node))
1074
+ #define RNODE_REDO(node) ((rb_node_redo_t *)(node))
1075
+ #define RNODE_RETRY(node) ((rb_node_retry_t *)(node))
1076
+ #define RNODE_BEGIN(node) ((rb_node_begin_t *)(node))
1077
+ #define RNODE_RESCUE(node) ((rb_node_rescue_t *)(node))
1078
+ #define RNODE_RESBODY(node) ((rb_node_resbody_t *)(node))
1079
+ #define RNODE_ENSURE(node) ((rb_node_ensure_t *)(node))
1080
+ #define RNODE_AND(node) ((rb_node_and_t *)(node))
1081
+ #define RNODE_OR(node) ((rb_node_or_t *)(node))
1082
+ #define RNODE_MASGN(node) ((rb_node_masgn_t *)(node))
1083
+ #define RNODE_LASGN(node) ((rb_node_lasgn_t *)(node))
1084
+ #define RNODE_DASGN(node) ((rb_node_dasgn_t *)(node))
1085
+ #define RNODE_GASGN(node) ((rb_node_gasgn_t *)(node))
1086
+ #define RNODE_IASGN(node) ((rb_node_iasgn_t *)(node))
1087
+ #define RNODE_CDECL(node) ((rb_node_cdecl_t *)(node))
1088
+ #define RNODE_CVASGN(node) ((rb_node_cvasgn_t *)(node))
1089
+ #define RNODE_OP_ASGN1(node) ((rb_node_op_asgn1_t *)(node))
1090
+ #define RNODE_OP_ASGN2(node) ((rb_node_op_asgn2_t *)(node))
1091
+ #define RNODE_OP_ASGN_AND(node) ((rb_node_op_asgn_and_t *)(node))
1092
+ #define RNODE_OP_ASGN_OR(node) ((rb_node_op_asgn_or_t *)(node))
1093
+ #define RNODE_OP_CDECL(node) ((rb_node_op_cdecl_t *)(node))
1094
+ #define RNODE_CALL(node) ((rb_node_call_t *)(node))
1095
+ #define RNODE_OPCALL(node) ((rb_node_opcall_t *)(node))
1096
+ #define RNODE_FCALL(node) ((rb_node_fcall_t *)(node))
1097
+ #define RNODE_VCALL(node) ((rb_node_vcall_t *)(node))
1098
+ #define RNODE_QCALL(node) ((rb_node_qcall_t *)(node))
1099
+ #define RNODE_SUPER(node) ((rb_node_super_t *)(node))
1100
+ #define RNODE_ZSUPER(node) ((rb_node_zsuper_t *)(node))
1101
+ #define RNODE_LIST(node) ((rb_node_list_t *)(node))
1102
+ #define RNODE_ZLIST(node) ((rb_node_zlist_t *)(node))
1103
+ #define RNODE_HASH(node) ((rb_node_hash_t *)(node))
1104
+ #define RNODE_RETURN(node) ((rb_node_return_t *)(node))
1105
+ #define RNODE_YIELD(node) ((rb_node_yield_t *)(node))
1106
+ #define RNODE_LVAR(node) ((rb_node_lvar_t *)(node))
1107
+ #define RNODE_DVAR(node) ((rb_node_dvar_t *)(node))
1108
+ #define RNODE_GVAR(node) ((rb_node_gvar_t *)(node))
1109
+ #define RNODE_IVAR(node) ((rb_node_ivar_t *)(node))
1110
+ #define RNODE_CONST(node) ((rb_node_const_t *)(node))
1111
+ #define RNODE_CVAR(node) ((rb_node_cvar_t *)(node))
1112
+ #define RNODE_NTH_REF(node) ((rb_node_nth_ref_t *)(node))
1113
+ #define RNODE_BACK_REF(node) ((rb_node_back_ref_t *)(node))
1114
+ #define RNODE_MATCH(node) ((rb_node_match_t *)(node))
1115
+ #define RNODE_MATCH2(node) ((rb_node_match2_t *)(node))
1116
+ #define RNODE_MATCH3(node) ((rb_node_match3_t *)(node))
1117
+ #define RNODE_INTEGER(node) ((rb_node_integer_t *)(node))
1118
+ #define RNODE_FLOAT(node) ((rb_node_float_t *)(node))
1119
+ #define RNODE_RATIONAL(node) ((rb_node_rational_t *)(node))
1120
+ #define RNODE_IMAGINARY(node) ((rb_node_imaginary_t *)(node))
1121
+ #define RNODE_STR(node) ((rb_node_str_t *)(node))
1122
+ #define RNODE_DSTR(node) ((rb_node_dstr_t *)(node))
1123
+ #define RNODE_XSTR(node) ((rb_node_xstr_t *)(node))
1124
+ #define RNODE_DXSTR(node) ((rb_node_dxstr_t *)(node))
1125
+ #define RNODE_EVSTR(node) ((rb_node_evstr_t *)(node))
1126
+ #define RNODE_REGX(node) ((rb_node_regx_t *)(node))
1127
+ #define RNODE_DREGX(node) ((rb_node_dregx_t *)(node))
1128
+ #define RNODE_ONCE(node) ((rb_node_once_t *)(node))
1129
+ #define RNODE_ARGS(node) ((rb_node_args_t *)(node))
1130
+ #define RNODE_ARGS_AUX(node) ((rb_node_args_aux_t *)(node))
1131
+ #define RNODE_OPT_ARG(node) ((rb_node_opt_arg_t *)(node))
1132
+ #define RNODE_KW_ARG(node) ((rb_node_kw_arg_t *)(node))
1133
+ #define RNODE_POSTARG(node) ((rb_node_postarg_t *)(node))
1134
+ #define RNODE_ARGSCAT(node) ((rb_node_argscat_t *)(node))
1135
+ #define RNODE_ARGSPUSH(node) ((rb_node_argspush_t *)(node))
1136
+ #define RNODE_SPLAT(node) ((rb_node_splat_t *)(node))
1137
+ #define RNODE_BLOCK_PASS(node) ((rb_node_block_pass_t *)(node))
1138
+ #define RNODE_DEFN(node) ((rb_node_defn_t *)(node))
1139
+ #define RNODE_DEFS(node) ((rb_node_defs_t *)(node))
1140
+ #define RNODE_ALIAS(node) ((rb_node_alias_t *)(node))
1141
+ #define RNODE_VALIAS(node) ((rb_node_valias_t *)(node))
1142
+ #define RNODE_UNDEF(node) ((rb_node_undef_t *)(node))
1143
+ #define RNODE_CLASS(node) ((rb_node_class_t *)(node))
1144
+ #define RNODE_MODULE(node) ((rb_node_module_t *)(node))
1145
+ #define RNODE_SCLASS(node) ((rb_node_sclass_t *)(node))
1146
+ #define RNODE_COLON2(node) ((rb_node_colon2_t *)(node))
1147
+ #define RNODE_COLON3(node) ((rb_node_colon3_t *)(node))
1148
+ #define RNODE_DOT2(node) ((rb_node_dot2_t *)(node))
1149
+ #define RNODE_DOT3(node) ((rb_node_dot3_t *)(node))
1150
+ #define RNODE_FLIP2(node) ((rb_node_flip2_t *)(node))
1151
+ #define RNODE_FLIP3(node) ((rb_node_flip3_t *)(node))
1152
+ #define RNODE_SELF(node) ((rb_node_self_t *)(node))
1153
+ #define RNODE_NIL(node) ((rb_node_nil_t *)(node))
1154
+ #define RNODE_TRUE(node) ((rb_node_true_t *)(node))
1155
+ #define RNODE_FALSE(node) ((rb_node_false_t *)(node))
1156
+ #define RNODE_ERRINFO(node) ((rb_node_errinfo_t *)(node))
1157
+ #define RNODE_DEFINED(node) ((rb_node_defined_t *)(node))
1158
+ #define RNODE_POSTEXE(node) ((rb_node_postexe_t *)(node))
1159
+ #define RNODE_SYM(node) ((rb_node_sym_t *)(node))
1160
+ #define RNODE_DSYM(node) ((rb_node_dsym_t *)(node))
1161
+ #define RNODE_ATTRASGN(node) ((rb_node_attrasgn_t *)(node))
1162
+ #define RNODE_LAMBDA(node) ((rb_node_lambda_t *)(node))
1163
+ #define RNODE_ARYPTN(node) ((rb_node_aryptn_t *)(node))
1164
+ #define RNODE_HSHPTN(node) ((rb_node_hshptn_t *)(node))
1165
+ #define RNODE_FNDPTN(node) ((rb_node_fndptn_t *)(node))
1166
+ #define RNODE_LINE(node) ((rb_node_line_t *)(node))
1167
+ #define RNODE_FILE(node) ((rb_node_file_t *)(node))
1168
+ #define RNODE_ENCODING(node) ((rb_node_encoding_t *)(node))
1169
+
1170
+ /* FL : 0..4: T_TYPES, 5: KEEP_WB, 6: PROMOTED, 7: FINALIZE, 8..10: UNUSED, 11: FREEZE */
1191
1171
  /* NODE_FL: 0..4: UNUSED, 5: UNUSED, 6: UNUSED, 7: NODE_FL_NEWLINE,
1192
1172
  * 8..14: nd_type,
1193
1173
  * 15..: nd_line
@@ -1197,9 +1177,9 @@ typedef struct RNode_ERROR {
1197
1177
  #define NODE_TYPESHIFT 8
1198
1178
  #define NODE_TYPEMASK (((VALUE)0x7f)<<NODE_TYPESHIFT)
1199
1179
 
1200
- #define nd_fl_newline(n) (n)->flags & NODE_FL_NEWLINE
1201
- #define nd_set_fl_newline(n) (n)->flags |= NODE_FL_NEWLINE
1202
- #define nd_unset_fl_newline(n) (n)->flags &= ~NODE_FL_NEWLINE
1180
+ #define nd_fl_newline(n) ((n)->flags & NODE_FL_NEWLINE)
1181
+ #define nd_set_fl_newline(n) ((n)->flags |= NODE_FL_NEWLINE)
1182
+ #define nd_unset_fl_newline(n) ((n)->flags &= ~NODE_FL_NEWLINE)
1203
1183
 
1204
1184
  #define nd_type(n) ((int) ((RNODE(n)->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
1205
1185
  #define nd_set_type(n,t) \
@@ -1240,6 +1220,8 @@ typedef struct parser_params rb_parser_t;
1240
1220
  typedef struct rb_imemo_tmpbuf_struct rb_imemo_tmpbuf_t;
1241
1221
  #endif
1242
1222
 
1223
+ typedef NODE *(*rb_parser_assignable_func)(struct parser_params *p, ID id, NODE *val, const rb_code_location_t *loc);
1224
+
1243
1225
  #ifdef UNIVERSAL_PARSER
1244
1226
  typedef struct rb_parser_config_struct {
1245
1227
  /* Memory */
@@ -1257,14 +1239,12 @@ typedef struct rb_parser_config_struct {
1257
1239
 
1258
1240
  // VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);
1259
1241
  VALUE (*compile_callback)(VALUE (*func)(VALUE), VALUE arg);
1260
- NODE *(*reg_named_capture_assign)(struct parser_params* p, VALUE regexp, const rb_code_location_t *loc);
1242
+ NODE *(*reg_named_capture_assign)(struct parser_params* p, VALUE regexp, const rb_code_location_t *loc, rb_parser_assignable_func assignable);
1261
1243
 
1262
1244
  /* Variable */
1263
1245
  VALUE (*attr_get)(VALUE obj, ID id);
1264
1246
 
1265
1247
  /* Array */
1266
- VALUE (*ary_new)(void);
1267
- VALUE (*ary_push)(VALUE ary, VALUE elem);
1268
1248
  VALUE (*ary_new_from_args)(long n, ...);
1269
1249
  VALUE (*ary_unshift)(VALUE ary, VALUE item);
1270
1250
 
@@ -1284,30 +1264,22 @@ typedef struct rb_parser_config_struct {
1284
1264
  const char *(*id2name)(ID id);
1285
1265
  VALUE (*id2str)(ID id);
1286
1266
  VALUE (*id2sym)(ID x);
1287
- ID (*sym2id)(VALUE sym);
1288
1267
 
1289
1268
  /* String */
1290
1269
  RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)
1291
1270
  VALUE (*str_catf)(VALUE str, const char *format, ...);
1292
1271
  VALUE (*str_cat_cstr)(VALUE str, const char *ptr);
1293
- void (*str_modify)(VALUE str);
1294
- void (*str_set_len)(VALUE str, long len);
1295
- VALUE (*str_cat)(VALUE str, const char *ptr, long len);
1296
1272
  VALUE (*str_resize)(VALUE str, long len);
1297
1273
  VALUE (*str_new)(const char *ptr, long len);
1298
1274
  VALUE (*str_new_cstr)(const char *ptr);
1299
1275
  VALUE (*str_to_interned_str)(VALUE);
1300
- int (*is_ascii_string)(VALUE str);
1301
1276
  VALUE (*enc_str_new)(const char *ptr, long len, rb_encoding *enc);
1302
1277
  RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)
1303
1278
  VALUE (*str_vcatf)(VALUE str, const char *fmt, va_list ap);
1304
- char *(*string_value_cstr)(volatile VALUE *ptr);
1305
1279
  RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
1306
1280
  VALUE (*rb_sprintf)(const char *format, ...);
1307
1281
  char *(*rstring_ptr)(VALUE str);
1308
- char *(*rstring_end)(VALUE str);
1309
1282
  long (*rstring_len)(VALUE str);
1310
- VALUE (*obj_as_string)(VALUE);
1311
1283
 
1312
1284
  /* Numeric */
1313
1285
  VALUE (*int2num)(int v);
@@ -1334,16 +1306,12 @@ typedef struct rb_parser_config_struct {
1334
1306
  rb_encoding* (*enc_get)(VALUE obj);
1335
1307
  int (*enc_asciicompat)(rb_encoding *enc);
1336
1308
  rb_encoding *(*utf8_encoding)(void);
1337
- VALUE (*enc_associate)(VALUE obj, rb_encoding *enc);
1338
1309
  rb_encoding *(*ascii8bit_encoding)(void);
1339
1310
  int (*enc_codelen)(int c, rb_encoding *enc);
1340
1311
  int (*enc_mbcput)(unsigned int c, void *buf, rb_encoding *enc);
1341
- int (*enc_mbclen)(const char *p, const char *e, rb_encoding *enc);
1342
1312
  int (*enc_find_index)(const char *name);
1343
1313
  rb_encoding *(*enc_from_index)(int idx);
1344
1314
  int (*enc_isspace)(OnigCodePoint c, rb_encoding *enc);
1345
- rb_encoding *(*usascii_encoding)(void);
1346
- int enc_coderange_broken;
1347
1315
  int (*enc_mbminlen)(rb_encoding *enc);
1348
1316
  bool (*enc_isascii)(OnigCodePoint c, rb_encoding *enc);
1349
1317
  OnigCodePoint (*enc_mbc_to_codepoint)(const char *p, const char *e, rb_encoding *enc);
@@ -1364,7 +1332,6 @@ typedef struct rb_parser_config_struct {
1364
1332
  /* Eval */
1365
1333
  VALUE (*errinfo)(void);
1366
1334
  void (*set_errinfo)(VALUE err);
1367
- void (*exc_raise)(VALUE mesg);
1368
1335
  VALUE (*make_exception)(int argc, const VALUE *argv);
1369
1336
 
1370
1337
  /* GC */
@@ -1422,9 +1389,6 @@ rb_parser_t *rb_ruby_parser_allocate(const rb_parser_config_t *config);
1422
1389
  rb_parser_t *rb_ruby_parser_new(const rb_parser_config_t *config);
1423
1390
  #endif
1424
1391
 
1425
- long rb_parser_string_length(rb_parser_string_t *str);
1426
- char *rb_parser_string_pointer(rb_parser_string_t *str);
1427
-
1428
1392
  RUBY_SYMBOL_EXPORT_END
1429
1393
 
1430
1394
  #endif /* RUBY_RUBYPARSER_H */