debase-ruby_core_source 3.3.6 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/builtin.h +7 -1
  5. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/darray.h +1 -3
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/id.h +5 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns.inc +2 -0
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns_info.inc +310 -175
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/basic_operators.h +1 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/bits.h +82 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/encoding.h +2 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/error.h +26 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/fixnum.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/gc.h +14 -6
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/imemo.h +6 -1
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/io.h +1 -1
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/parse.h +2 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/proc.h +1 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/ractor.h +4 -0
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/sanitizers.h +31 -39
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/string.h +22 -10
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/thread.h +23 -0
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/vm.h +1 -1
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/method.h +1 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/optunifs.inc +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/parse.h +2 -2
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/ast.h +427 -3
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/defines.h +8 -7
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/diagnostic.h +1 -0
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/extension.h +1 -1
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prism.h +47 -11
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/version.h +2 -2
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism_compile.h +5 -5
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/ractor_core.h +6 -6
  35. data/lib/debase/ruby_core_source/ruby-3.4.0/revision.h +5 -0
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/rubyparser.h +3 -2
  37. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/thread_pthread.h +0 -1
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/version.h +1 -1
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm.inc +151 -88
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_core.h +40 -12
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_sync.h +3 -3
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vmtc.inc +2 -0
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/yjit.h +1 -0
  44. data/lib/debase/ruby_core_source/version.rb +1 -1
  45. metadata +147 -293
  46. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  47. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  48. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  49. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +0 -343
  50. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  51. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  52. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +0 -151
  53. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +0 -63
  54. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +0 -568
  55. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  56. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +0 -216
  57. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +0 -184
  58. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +0 -334
  59. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +0 -191
  60. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +0 -260
  61. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +0 -140
  62. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +0 -117
  63. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +0 -6
  64. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +0 -297
  65. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +0 -182
  66. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +0 -79
  67. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +0 -137
  68. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  69. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +0 -255
  70. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  71. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  72. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +0 -6245
  73. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +0 -206
  74. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +0 -433
  75. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +0 -19
  76. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +0 -150
  77. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +0 -305
  78. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +0 -891
  79. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  80. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +0 -120
  81. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +0 -205
  82. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +0 -226
  83. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +0 -119
  84. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +0 -102
  85. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +0 -174
  86. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  87. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +0 -29
  88. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +0 -88
  89. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +0 -393
  90. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  91. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  92. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +0 -1430
  93. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  94. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  95. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +0 -166
  96. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  97. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  98. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  99. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +0 -2236
  100. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  101. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  102. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  103. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  104. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  105. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +0 -40
  106. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +0 -63
  107. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +0 -142
  108. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +0 -791
  109. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +0 -17
  110. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  111. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  112. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  113. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  114. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +0 -39
  115. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +0 -244
  116. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +0 -65
  117. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +0 -29
  118. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +0 -34
  119. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +0 -107
  120. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +0 -29
  121. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +0 -35
  122. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +0 -16
  123. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +0 -19
  124. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +0 -36
  125. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +0 -18
  126. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +0 -21
  127. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +0 -33
  128. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +0 -38
  129. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +0 -47
  130. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +0 -18
  131. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +0 -16
  132. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +0 -23
  133. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +0 -19
  134. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +0 -274
  135. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +0 -63
  136. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +0 -30
  137. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +0 -124
  138. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +0 -17
  139. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +0 -40
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +0 -71
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +0 -28
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +0 -102
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +0 -23
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +0 -24
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +0 -11
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +0 -16
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +0 -127
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +0 -45
  149. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +0 -34
  150. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +0 -23
  151. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +0 -27
  152. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +0 -72
  153. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +0 -16
  154. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +0 -108
  155. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +0 -340
  156. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +0 -111
  157. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  158. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  159. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  160. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  161. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +0 -162
  162. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +0 -106
  163. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +0 -283
  164. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +0 -163
  165. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +0 -34
  166. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +0 -336
  167. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +0 -218
  168. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +0 -97
  169. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +0 -29
  170. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +0 -32
  171. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +0 -46
  172. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  173. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  174. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  175. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  176. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  177. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  178. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +0 -14
  179. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  180. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  181. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +0 -21
  182. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  183. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  184. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  185. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  186. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  187. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +0 -124
  188. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  189. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +0 -67
  190. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  191. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/addr2line.h +0 -0
  192. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/build_assert/build_assert.h +0 -0
  193. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/check_type/check_type.h +0 -0
  194. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/container_of/container_of.h +0 -0
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/list/list.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/str/str.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/constant.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/debug_counter.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/dln.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/encindex.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/eval_intern.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/hrtime.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/id_table.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/array.h +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/bignum.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/class.h +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cmdlineopt.h +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compar.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compile.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compilers.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/complex.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cont.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/dir.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enc.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enum.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enumerator.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/eval.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/file.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/hash.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/inits.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/load.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/loadpath.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/math.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/missing.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/numeric.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/object.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/process.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/random.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/range.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/rational.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/re.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/ruby_parser.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/serial.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/signal.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/st.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/static_assert.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/struct.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/symbol.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/time.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/transcode.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/util.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/variable.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/warnings.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/iseq.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/known_errors.inc +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node_name.inc +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/optinsn.inc +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_bits.h +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_node.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_st.h +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_value.h +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/encoding.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/node.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/options.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/pack.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/parser.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prettyprint.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/regexp.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/static_literals.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_buffer.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_char.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_constant_pool.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_integer.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_list.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_memchr.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_newline_list.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_string.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strncasecmp.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strpbrk.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/probes_helper.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regenc.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/regint.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regparse.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit_c.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_assert.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_atomic.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/shape.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/siphash.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/symbol.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_none.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_win32.h +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/timev.h +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/transcode_data.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/variable.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_call_iseq_optimized.inc +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_callinfo.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_debug.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_exec.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_insnhelper.h +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_opts.h +0 -0
@@ -1,163 +0,0 @@
1
- /**
2
- * @file pack.h
3
- *
4
- * A pack template string parser.
5
- */
6
- #ifndef PRISM_PACK_H
7
- #define PRISM_PACK_H
8
-
9
- #include "prism/defines.h"
10
-
11
- // We optionally support parsing String#pack templates. For systems that don't
12
- // want or need this functionality, it can be turned off with the
13
- // PRISM_EXCLUDE_PACK define.
14
- #ifdef PRISM_EXCLUDE_PACK
15
-
16
- void pm_pack_parse(void);
17
-
18
- #else
19
-
20
- #include <stdint.h>
21
- #include <stdlib.h>
22
-
23
- /** The version of the pack template language that we are parsing. */
24
- typedef enum pm_pack_version {
25
- PM_PACK_VERSION_3_2_0
26
- } pm_pack_version;
27
-
28
- /** The type of pack template we are parsing. */
29
- typedef enum pm_pack_variant {
30
- PM_PACK_VARIANT_PACK,
31
- PM_PACK_VARIANT_UNPACK
32
- } pm_pack_variant;
33
-
34
- /** A directive within the pack template. */
35
- typedef enum pm_pack_type {
36
- PM_PACK_SPACE,
37
- PM_PACK_COMMENT,
38
- PM_PACK_INTEGER,
39
- PM_PACK_UTF8,
40
- PM_PACK_BER,
41
- PM_PACK_FLOAT,
42
- PM_PACK_STRING_SPACE_PADDED,
43
- PM_PACK_STRING_NULL_PADDED,
44
- PM_PACK_STRING_NULL_TERMINATED,
45
- PM_PACK_STRING_MSB,
46
- PM_PACK_STRING_LSB,
47
- PM_PACK_STRING_HEX_HIGH,
48
- PM_PACK_STRING_HEX_LOW,
49
- PM_PACK_STRING_UU,
50
- PM_PACK_STRING_MIME,
51
- PM_PACK_STRING_BASE64,
52
- PM_PACK_STRING_FIXED,
53
- PM_PACK_STRING_POINTER,
54
- PM_PACK_MOVE,
55
- PM_PACK_BACK,
56
- PM_PACK_NULL,
57
- PM_PACK_END
58
- } pm_pack_type;
59
-
60
- /** The signness of a pack directive. */
61
- typedef enum pm_pack_signed {
62
- PM_PACK_UNSIGNED,
63
- PM_PACK_SIGNED,
64
- PM_PACK_SIGNED_NA
65
- } pm_pack_signed;
66
-
67
- /** The endianness of a pack directive. */
68
- typedef enum pm_pack_endian {
69
- PM_PACK_AGNOSTIC_ENDIAN,
70
- PM_PACK_LITTLE_ENDIAN, // aka 'VAX', or 'V'
71
- PM_PACK_BIG_ENDIAN, // aka 'network', or 'N'
72
- PM_PACK_NATIVE_ENDIAN,
73
- PM_PACK_ENDIAN_NA
74
- } pm_pack_endian;
75
-
76
- /** The size of an integer pack directive. */
77
- typedef enum pm_pack_size {
78
- PM_PACK_SIZE_SHORT,
79
- PM_PACK_SIZE_INT,
80
- PM_PACK_SIZE_LONG,
81
- PM_PACK_SIZE_LONG_LONG,
82
- PM_PACK_SIZE_8,
83
- PM_PACK_SIZE_16,
84
- PM_PACK_SIZE_32,
85
- PM_PACK_SIZE_64,
86
- PM_PACK_SIZE_P,
87
- PM_PACK_SIZE_NA
88
- } pm_pack_size;
89
-
90
- /** The type of length of a pack directive. */
91
- typedef enum pm_pack_length_type {
92
- PM_PACK_LENGTH_FIXED,
93
- PM_PACK_LENGTH_MAX,
94
- PM_PACK_LENGTH_RELATIVE, // special case for unpack @*
95
- PM_PACK_LENGTH_NA
96
- } pm_pack_length_type;
97
-
98
- /** The type of encoding for a pack template string. */
99
- typedef enum pm_pack_encoding {
100
- PM_PACK_ENCODING_START,
101
- PM_PACK_ENCODING_ASCII_8BIT,
102
- PM_PACK_ENCODING_US_ASCII,
103
- PM_PACK_ENCODING_UTF_8
104
- } pm_pack_encoding;
105
-
106
- /** The result of parsing a pack template. */
107
- typedef enum pm_pack_result {
108
- PM_PACK_OK,
109
- PM_PACK_ERROR_UNSUPPORTED_DIRECTIVE,
110
- PM_PACK_ERROR_UNKNOWN_DIRECTIVE,
111
- PM_PACK_ERROR_LENGTH_TOO_BIG,
112
- PM_PACK_ERROR_BANG_NOT_ALLOWED,
113
- PM_PACK_ERROR_DOUBLE_ENDIAN
114
- } pm_pack_result;
115
-
116
- /**
117
- * Parse a single directive from a pack or unpack format string.
118
- *
119
- * @param variant (in) pack or unpack
120
- * @param format (in, out) the start of the next directive to parse on calling,
121
- * and advanced beyond the parsed directive on return, or as much of it as
122
- * was consumed until an error was encountered
123
- * @param format_end (in) the end of the format string
124
- * @param type (out) the type of the directive
125
- * @param signed_type (out) whether the value is signed
126
- * @param endian (out) the endianness of the value
127
- * @param size (out) the size of the value
128
- * @param length_type (out) what kind of length is specified
129
- * @param length (out) the length of the directive
130
- * @param encoding (in, out) takes the current encoding of the string which
131
- * would result from parsing the whole format string, and returns a possibly
132
- * changed directive - the encoding should be `PM_PACK_ENCODING_START` when
133
- * pm_pack_parse is called for the first directive in a format string
134
- *
135
- * @return `PM_PACK_OK` on success or `PM_PACK_ERROR_*` on error
136
- * @note Consult Ruby documentation for the meaning of directives.
137
- */
138
- PRISM_EXPORTED_FUNCTION pm_pack_result
139
- pm_pack_parse(
140
- pm_pack_variant variant,
141
- const char **format,
142
- const char *format_end,
143
- pm_pack_type *type,
144
- pm_pack_signed *signed_type,
145
- pm_pack_endian *endian,
146
- pm_pack_size *size,
147
- pm_pack_length_type *length_type,
148
- uint64_t *length,
149
- pm_pack_encoding *encoding
150
- );
151
-
152
- /**
153
- * Prism abstracts sizes away from the native system - this converts an abstract
154
- * size to a native size.
155
- *
156
- * @param size The abstract size to convert.
157
- * @return The native size.
158
- */
159
- PRISM_EXPORTED_FUNCTION size_t pm_size_to_native(pm_pack_size size);
160
-
161
- #endif
162
-
163
- #endif
@@ -1,34 +0,0 @@
1
- /**
2
- * @file prettyprint.h
3
- *
4
- * An AST node pretty-printer.
5
- */
6
- #ifndef PRISM_PRETTYPRINT_H
7
- #define PRISM_PRETTYPRINT_H
8
-
9
- #include "prism/defines.h"
10
-
11
- #ifdef PRISM_EXCLUDE_PRETTYPRINT
12
-
13
- void pm_prettyprint(void);
14
-
15
- #else
16
-
17
- #include <stdio.h>
18
-
19
- #include "prism/ast.h"
20
- #include "prism/parser.h"
21
- #include "prism/util/pm_buffer.h"
22
-
23
- /**
24
- * Pretty-prints the AST represented by the given node to the given buffer.
25
- *
26
- * @param output_buffer The buffer to write the pretty-printed AST to.
27
- * @param parser The parser that parsed the AST.
28
- * @param node The root node of the AST to pretty-print.
29
- */
30
- PRISM_EXPORTED_FUNCTION void pm_prettyprint(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm_node_t *node);
31
-
32
- #endif
33
-
34
- #endif
@@ -1,336 +0,0 @@
1
- /**
2
- * @file prism.h
3
- *
4
- * The main header file for the prism parser.
5
- */
6
- #ifndef PRISM_H
7
- #define PRISM_H
8
-
9
- #include "prism/defines.h"
10
- #include "prism/util/pm_buffer.h"
11
- #include "prism/util/pm_char.h"
12
- #include "prism/util/pm_integer.h"
13
- #include "prism/util/pm_memchr.h"
14
- #include "prism/util/pm_strncasecmp.h"
15
- #include "prism/util/pm_strpbrk.h"
16
- #include "prism/ast.h"
17
- #include "prism/diagnostic.h"
18
- #include "prism/node.h"
19
- #include "prism/options.h"
20
- #include "prism/pack.h"
21
- #include "prism/parser.h"
22
- #include "prism/prettyprint.h"
23
- #include "prism/regexp.h"
24
- #include "prism/static_literals.h"
25
- #include "prism/version.h"
26
-
27
- #include <assert.h>
28
- #include <errno.h>
29
- #include <locale.h>
30
- #include <math.h>
31
- #include <stdarg.h>
32
- #include <stdbool.h>
33
- #include <stdint.h>
34
- #include <stdio.h>
35
- #include <stdlib.h>
36
- #include <string.h>
37
-
38
- #ifndef _WIN32
39
- #include <strings.h>
40
- #endif
41
-
42
- /**
43
- * The prism version and the serialization format.
44
- *
45
- * @returns The prism version as a constant string.
46
- */
47
- PRISM_EXPORTED_FUNCTION const char * pm_version(void);
48
-
49
- /**
50
- * Initialize a parser with the given start and end pointers.
51
- *
52
- * @param parser The parser to initialize.
53
- * @param source The source to parse.
54
- * @param size The size of the source.
55
- * @param options The optional options to use when parsing.
56
- */
57
- PRISM_EXPORTED_FUNCTION void pm_parser_init(pm_parser_t *parser, const uint8_t *source, size_t size, const pm_options_t *options);
58
-
59
- /**
60
- * Register a callback that will be called whenever prism changes the encoding
61
- * it is using to parse based on the magic comment.
62
- *
63
- * @param parser The parser to register the callback with.
64
- * @param callback The callback to register.
65
- */
66
- PRISM_EXPORTED_FUNCTION void pm_parser_register_encoding_changed_callback(pm_parser_t *parser, pm_encoding_changed_callback_t callback);
67
-
68
- /**
69
- * Free any memory associated with the given parser.
70
- *
71
- * @param parser The parser to free.
72
- */
73
- PRISM_EXPORTED_FUNCTION void pm_parser_free(pm_parser_t *parser);
74
-
75
- /**
76
- * Initiate the parser with the given parser.
77
- *
78
- * @param parser The parser to use.
79
- * @return The AST representing the source.
80
- */
81
- PRISM_EXPORTED_FUNCTION pm_node_t * pm_parse(pm_parser_t *parser);
82
-
83
- /**
84
- * This function is used in pm_parse_stream to retrieve a line of input from a
85
- * stream. It closely mirrors that of fgets so that fgets can be used as the
86
- * default implementation.
87
- */
88
- typedef char * (pm_parse_stream_fgets_t)(char *string, int size, void *stream);
89
-
90
- /**
91
- * Parse a stream of Ruby source and return the tree.
92
- *
93
- * @param parser The parser to use.
94
- * @param buffer The buffer to use.
95
- * @param stream The stream to parse.
96
- * @param fgets The function to use to read from the stream.
97
- * @param options The optional options to use when parsing.
98
- * @return The AST representing the source.
99
- */
100
- PRISM_EXPORTED_FUNCTION pm_node_t * pm_parse_stream(pm_parser_t *parser, pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *fgets, const pm_options_t *options);
101
-
102
- // We optionally support serializing to a binary string. For systems that don't
103
- // want or need this functionality, it can be turned off with the
104
- // PRISM_EXCLUDE_SERIALIZATION define.
105
- #ifndef PRISM_EXCLUDE_SERIALIZATION
106
-
107
- /**
108
- * Parse and serialize the AST represented by the source that is read out of the
109
- * given stream into to the given buffer.
110
- *
111
- * @param buffer The buffer to serialize to.
112
- * @param stream The stream to parse.
113
- * @param fgets The function to use to read from the stream.
114
- * @param data The optional data to pass to the parser.
115
- */
116
- PRISM_EXPORTED_FUNCTION void pm_serialize_parse_stream(pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *fgets, const char *data);
117
-
118
- /**
119
- * Serialize the given list of comments to the given buffer.
120
- *
121
- * @param parser The parser to serialize.
122
- * @param list The list of comments to serialize.
123
- * @param buffer The buffer to serialize to.
124
- */
125
- void pm_serialize_comment_list(pm_parser_t *parser, pm_list_t *list, pm_buffer_t *buffer);
126
-
127
- /**
128
- * Serialize the name of the encoding to the buffer.
129
- *
130
- * @param encoding The encoding to serialize.
131
- * @param buffer The buffer to serialize to.
132
- */
133
- void pm_serialize_encoding(const pm_encoding_t *encoding, pm_buffer_t *buffer);
134
-
135
- /**
136
- * Serialize the encoding, metadata, nodes, and constant pool.
137
- *
138
- * @param parser The parser to serialize.
139
- * @param node The node to serialize.
140
- * @param buffer The buffer to serialize to.
141
- */
142
- void pm_serialize_content(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer);
143
-
144
- /**
145
- * Serialize the AST represented by the given node to the given buffer.
146
- *
147
- * @param parser The parser to serialize.
148
- * @param node The node to serialize.
149
- * @param buffer The buffer to serialize to.
150
- */
151
- PRISM_EXPORTED_FUNCTION void pm_serialize(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer);
152
-
153
- /**
154
- * Parse the given source to the AST and dump the AST to the given buffer.
155
- *
156
- * @param buffer The buffer to serialize to.
157
- * @param source The source to parse.
158
- * @param size The size of the source.
159
- * @param data The optional data to pass to the parser.
160
- */
161
- PRISM_EXPORTED_FUNCTION void pm_serialize_parse(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data);
162
-
163
- /**
164
- * Parse and serialize the comments in the given source to the given buffer.
165
- *
166
- * @param buffer The buffer to serialize to.
167
- * @param source The source to parse.
168
- * @param size The size of the source.
169
- * @param data The optional data to pass to the parser.
170
- */
171
- PRISM_EXPORTED_FUNCTION void pm_serialize_parse_comments(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data);
172
-
173
- /**
174
- * Lex the given source and serialize to the given buffer.
175
- *
176
- * @param source The source to lex.
177
- * @param size The size of the source.
178
- * @param buffer The buffer to serialize to.
179
- * @param data The optional data to pass to the lexer.
180
- */
181
- PRISM_EXPORTED_FUNCTION void pm_serialize_lex(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data);
182
-
183
- /**
184
- * Parse and serialize both the AST and the tokens represented by the given
185
- * source to the given buffer.
186
- *
187
- * @param buffer The buffer to serialize to.
188
- * @param source The source to parse.
189
- * @param size The size of the source.
190
- * @param data The optional data to pass to the parser.
191
- */
192
- PRISM_EXPORTED_FUNCTION void pm_serialize_parse_lex(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data);
193
-
194
- #endif
195
-
196
- /**
197
- * Parse the source and return true if it parses without errors or warnings.
198
- *
199
- * @param source The source to parse.
200
- * @param size The size of the source.
201
- * @param data The optional data to pass to the parser.
202
- * @return True if the source parses without errors or warnings.
203
- */
204
- PRISM_EXPORTED_FUNCTION bool pm_parse_success_p(const uint8_t *source, size_t size, const char *data);
205
-
206
- /**
207
- * Returns a string representation of the given token type.
208
- *
209
- * @param token_type The token type to convert to a string.
210
- * @return A string representation of the given token type.
211
- */
212
- PRISM_EXPORTED_FUNCTION const char * pm_token_type_name(pm_token_type_t token_type);
213
-
214
- /**
215
- * Returns the human name of the given token type.
216
- *
217
- * @param token_type The token type to convert to a human name.
218
- * @return The human name of the given token type.
219
- */
220
- const char * pm_token_type_human(pm_token_type_t token_type);
221
-
222
- // We optionally support dumping to JSON. For systems that don't want or need
223
- // this functionality, it can be turned off with the PRISM_EXCLUDE_JSON define.
224
- #ifndef PRISM_EXCLUDE_JSON
225
-
226
- /**
227
- * Dump JSON to the given buffer.
228
- *
229
- * @param buffer The buffer to serialize to.
230
- * @param parser The parser that parsed the node.
231
- * @param node The node to serialize.
232
- */
233
- PRISM_EXPORTED_FUNCTION void pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *node);
234
-
235
- #endif
236
-
237
- /**
238
- * @mainpage
239
- *
240
- * Prism is a parser for the Ruby programming language. It is designed to be
241
- * portable, error tolerant, and maintainable. It is written in C99 and has no
242
- * dependencies. It is currently being integrated into
243
- * [CRuby](https://github.com/ruby/ruby),
244
- * [JRuby](https://github.com/jruby/jruby),
245
- * [TruffleRuby](https://github.com/oracle/truffleruby),
246
- * [Sorbet](https://github.com/sorbet/sorbet), and
247
- * [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree).
248
- *
249
- * @section getting-started Getting started
250
- *
251
- * If you're vendoring this project and compiling it statically then as long as
252
- * you have a C99 compiler you will be fine. If you're linking against it as
253
- * shared library, then you should compile with `-fvisibility=hidden` and
254
- * `-DPRISM_EXPORT_SYMBOLS` to tell prism to make only its public interface
255
- * visible.
256
- *
257
- * @section parsing Parsing
258
- *
259
- * In order to parse Ruby code, the structures and functions that you're going
260
- * to want to use and be aware of are:
261
- *
262
- * * `pm_parser_t` - the main parser structure
263
- * * `pm_parser_init` - initialize a parser
264
- * * `pm_parse` - parse and return the root node
265
- * * `pm_node_destroy` - deallocate the root node returned by `pm_parse`
266
- * * `pm_parser_free` - free the internal memory of the parser
267
- *
268
- * Putting all of this together would look something like:
269
- *
270
- * ```c
271
- * void parse(const uint8_t *source, size_t length) {
272
- * pm_parser_t parser;
273
- * pm_parser_init(&parser, source, length, NULL);
274
- *
275
- * pm_node_t *root = pm_parse(&parser);
276
- * printf("PARSED!\n");
277
- *
278
- * pm_node_destroy(&parser, root);
279
- * pm_parser_free(&parser);
280
- * }
281
- * ```
282
- *
283
- * All of the nodes "inherit" from `pm_node_t` by embedding those structures as
284
- * their first member. This means you can downcast and upcast any node in the
285
- * tree to a `pm_node_t`.
286
- *
287
- * @section serializing Serializing
288
- *
289
- * Prism provides the ability to serialize the AST and its related metadata into
290
- * a binary format. This format is designed to be portable to different
291
- * languages and runtimes so that you only need to make one FFI call in order to
292
- * parse Ruby code. The structures and functions that you're going to want to
293
- * use and be aware of are:
294
- *
295
- * * `pm_buffer_t` - a small buffer object that will hold the serialized AST
296
- * * `pm_buffer_free` - free the memory associated with the buffer
297
- * * `pm_serialize` - serialize the AST into a buffer
298
- * * `pm_serialize_parse` - parse and serialize the AST into a buffer
299
- *
300
- * Putting all of this together would look something like:
301
- *
302
- * ```c
303
- * void serialize(const uint8_t *source, size_t length) {
304
- * pm_buffer_t buffer = { 0 };
305
- *
306
- * pm_serialize_parse(&buffer, source, length, NULL);
307
- * printf("SERIALIZED!\n");
308
- *
309
- * pm_buffer_free(&buffer);
310
- * }
311
- * ```
312
- *
313
- * @section inspecting Inspecting
314
- *
315
- * Prism provides the ability to inspect the AST by pretty-printing nodes. You
316
- * can do this with the `pm_prettyprint` function, which you would use like:
317
- *
318
- * ```c
319
- * void prettyprint(const uint8_t *source, size_t length) {
320
- * pm_parser_t parser;
321
- * pm_parser_init(&parser, source, length, NULL);
322
- *
323
- * pm_node_t *root = pm_parse(&parser);
324
- * pm_buffer_t buffer = { 0 };
325
- *
326
- * pm_prettyprint(&buffer, &parser, root);
327
- * printf("%*.s\n", (int) buffer.length, buffer.value);
328
- *
329
- * pm_buffer_free(&buffer);
330
- * pm_node_destroy(&parser, root);
331
- * pm_parser_free(&parser);
332
- * }
333
- * ```
334
- */
335
-
336
- #endif