datadog-ruby_core_source 3.4.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/id.h +357 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/id_table.h +15 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/array.h +2 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/basic_operators.h +66 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bignum.h +256 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bits.h +647 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/box.h +83 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/class.h +806 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/cmdlineopt.h +3 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/concurrent_set.h +21 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cont.h +34 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/encoding.h +2 -1
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/error.h +7 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/eval.h +43 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/gc.h +360 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/hash.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/imemo.h +87 -22
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/inits.h +4 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/io.h +25 -5
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/load.h +2 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/numeric.h +323 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/object.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/re.h +5 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/sanitizers.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/set_table.h +70 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/signal.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/st.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/string.h +4 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/struct.h +41 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/symbol.h +4 -5
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/thread.h +112 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/time.h +34 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/variable.h +13 -9
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/vm.h +138 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal.h +0 -3
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/iseq.h +359 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/method.h +276 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/ast.h +8254 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/diagnostic.h +7 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/extension.h +1 -1
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/options.h +488 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/parser.h +3 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/prism.h +408 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/regexp.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_buffer.h +8 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_integer.h +4 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_list.h +6 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_string.h +12 -2
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/version.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism_compile.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ractor_core.h +63 -114
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/ruby_atomic.h +73 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/rubyparser.h +1393 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/shape.h +464 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/thread_pthread.h +177 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_core.h +2406 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_debug.h +124 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/list/list.h +791 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/str/str.h +17 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/id.h +7 -5
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/id_table.h +54 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/array.h +154 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/cmdlineopt.h +64 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compar.h +29 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compile.h +34 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compilers.h +107 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/complex.h +29 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/dir.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enc.h +19 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/encoding.h +39 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enum.h +18 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enumerator.h +21 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/error.h +251 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/file.h +38 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/fixnum.h +185 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +25 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/hash.h +194 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/imemo.h +322 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/inits.h +51 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/io.h +163 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/load.h +20 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/loadpath.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/math.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/missing.h +19 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/object.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/parse.h +131 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/proc.h +30 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/process.h +124 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/ractor.h +10 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/random.h +17 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/range.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/rational.h +71 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/re.h +33 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/ruby_parser.h +102 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/sanitizers.h +346 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/serial.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/signal.h +25 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/st.h +11 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/static_assert.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/string.h +203 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/struct.h +160 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/symbol.h +46 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +14 -10
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/transcode.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/util.h +27 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/variable.h +74 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +3 -4
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/warnings.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal.h +105 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/iseq.h +7 -1
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/method.h +14 -1
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/node.h +122 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/parser_st.h +162 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/parser_value.h +106 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +322 -53
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/defines.h +260 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/diagnostic.h +458 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/encoding.h +283 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/extension.h +19 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/node.h +129 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +46 -3
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/pack.h +163 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/parser.h +936 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/prettyprint.h +34 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/prism.h +39 -14
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/static_literals.h +121 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_buffer.h +236 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_char.h +204 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_constant_pool.h +218 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_integer.h +130 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_list.h +103 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_memchr.h +29 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_newline_list.h +113 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_string.h +200 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strncasecmp.h +32 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strpbrk.h +46 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/version.h +29 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism_compile.h +106 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ractor_core.h +306 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ruby_assert.h +14 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +15 -1
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/thread_none.h +21 -0
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +10 -2
- data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +160 -45
- data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/vm_opts.h +67 -0
- data/lib/datadog/ruby_core_source/version.rb +1 -1
- data/lib/datadog/ruby_core_source.rb +1 -1
- metadata +214 -106
- data/CHANGELOG.datadog.md +0 -19
- data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/internal/class.h +0 -283
- data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/ruby_atomic.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/shape.h +0 -234
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/check_type/check_type.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/container_of/container_of.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/list/list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/str/str.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compar.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compile.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compilers.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/complex.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/dir.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enumerator.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/file.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/fixnum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/loadpath.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/math.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/missing.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/parse.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/proc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/process.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/ractor.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/random.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/range.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/rational.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/ruby_parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/serial.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/static_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/transcode.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/util.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/warnings.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/parser_st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/parser_value.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/defines.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/encoding.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/pack.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/prettyprint.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/static_literals.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_char.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_memchr.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_newline_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ruby_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/thread_none.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/vm_opts.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/time.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* :markup: markdown */
|
|
2
|
+
|
|
1
3
|
/*----------------------------------------------------------------------------*/
|
|
2
4
|
/* This file is generated by the templates/template.rb script and should not */
|
|
3
5
|
/* be modified manually. See */
|
|
@@ -10,6 +12,8 @@
|
|
|
10
12
|
* @file ast.h
|
|
11
13
|
*
|
|
12
14
|
* The abstract syntax tree.
|
|
15
|
+
*
|
|
16
|
+
* --
|
|
13
17
|
*/
|
|
14
18
|
#ifndef PRISM_AST_H
|
|
15
19
|
#define PRISM_AST_H
|
|
@@ -30,11 +34,53 @@ typedef enum pm_token_type {
|
|
|
30
34
|
/** final token in the file */
|
|
31
35
|
PM_TOKEN_EOF = 1,
|
|
32
36
|
|
|
33
|
-
/**
|
|
34
|
-
|
|
37
|
+
/** } */
|
|
38
|
+
PM_TOKEN_BRACE_RIGHT,
|
|
35
39
|
|
|
36
|
-
/**
|
|
37
|
-
|
|
40
|
+
/** , */
|
|
41
|
+
PM_TOKEN_COMMA,
|
|
42
|
+
|
|
43
|
+
/** } */
|
|
44
|
+
PM_TOKEN_EMBEXPR_END,
|
|
45
|
+
|
|
46
|
+
/** do */
|
|
47
|
+
PM_TOKEN_KEYWORD_DO,
|
|
48
|
+
|
|
49
|
+
/** else */
|
|
50
|
+
PM_TOKEN_KEYWORD_ELSE,
|
|
51
|
+
|
|
52
|
+
/** elsif */
|
|
53
|
+
PM_TOKEN_KEYWORD_ELSIF,
|
|
54
|
+
|
|
55
|
+
/** end */
|
|
56
|
+
PM_TOKEN_KEYWORD_END,
|
|
57
|
+
|
|
58
|
+
/** ensure */
|
|
59
|
+
PM_TOKEN_KEYWORD_ENSURE,
|
|
60
|
+
|
|
61
|
+
/** in */
|
|
62
|
+
PM_TOKEN_KEYWORD_IN,
|
|
63
|
+
|
|
64
|
+
/** rescue */
|
|
65
|
+
PM_TOKEN_KEYWORD_RESCUE,
|
|
66
|
+
|
|
67
|
+
/** then */
|
|
68
|
+
PM_TOKEN_KEYWORD_THEN,
|
|
69
|
+
|
|
70
|
+
/** when */
|
|
71
|
+
PM_TOKEN_KEYWORD_WHEN,
|
|
72
|
+
|
|
73
|
+
/** a newline character outside of other tokens */
|
|
74
|
+
PM_TOKEN_NEWLINE,
|
|
75
|
+
|
|
76
|
+
/** ) */
|
|
77
|
+
PM_TOKEN_PARENTHESIS_RIGHT,
|
|
78
|
+
|
|
79
|
+
/** | */
|
|
80
|
+
PM_TOKEN_PIPE,
|
|
81
|
+
|
|
82
|
+
/** ; */
|
|
83
|
+
PM_TOKEN_SEMICOLON,
|
|
38
84
|
|
|
39
85
|
/** & */
|
|
40
86
|
PM_TOKEN_AMPERSAND,
|
|
@@ -69,9 +115,6 @@ typedef enum pm_token_type {
|
|
|
69
115
|
/** { */
|
|
70
116
|
PM_TOKEN_BRACE_LEFT,
|
|
71
117
|
|
|
72
|
-
/** } */
|
|
73
|
-
PM_TOKEN_BRACE_RIGHT,
|
|
74
|
-
|
|
75
118
|
/** [ */
|
|
76
119
|
PM_TOKEN_BRACKET_LEFT,
|
|
77
120
|
|
|
@@ -105,9 +148,6 @@ typedef enum pm_token_type {
|
|
|
105
148
|
/** :: */
|
|
106
149
|
PM_TOKEN_COLON_COLON,
|
|
107
150
|
|
|
108
|
-
/** , */
|
|
109
|
-
PM_TOKEN_COMMA,
|
|
110
|
-
|
|
111
151
|
/** a comment */
|
|
112
152
|
PM_TOKEN_COMMENT,
|
|
113
153
|
|
|
@@ -135,9 +175,6 @@ typedef enum pm_token_type {
|
|
|
135
175
|
/** #{ */
|
|
136
176
|
PM_TOKEN_EMBEXPR_BEGIN,
|
|
137
177
|
|
|
138
|
-
/** } */
|
|
139
|
-
PM_TOKEN_EMBEXPR_END,
|
|
140
|
-
|
|
141
178
|
/** # */
|
|
142
179
|
PM_TOKEN_EMBVAR,
|
|
143
180
|
|
|
@@ -237,27 +274,12 @@ typedef enum pm_token_type {
|
|
|
237
274
|
/** defined? */
|
|
238
275
|
PM_TOKEN_KEYWORD_DEFINED,
|
|
239
276
|
|
|
240
|
-
/** do */
|
|
241
|
-
PM_TOKEN_KEYWORD_DO,
|
|
242
|
-
|
|
243
277
|
/** do keyword for a predicate in a while, until, or for loop */
|
|
244
278
|
PM_TOKEN_KEYWORD_DO_LOOP,
|
|
245
279
|
|
|
246
|
-
/** else */
|
|
247
|
-
PM_TOKEN_KEYWORD_ELSE,
|
|
248
|
-
|
|
249
|
-
/** elsif */
|
|
250
|
-
PM_TOKEN_KEYWORD_ELSIF,
|
|
251
|
-
|
|
252
|
-
/** end */
|
|
253
|
-
PM_TOKEN_KEYWORD_END,
|
|
254
|
-
|
|
255
280
|
/** END */
|
|
256
281
|
PM_TOKEN_KEYWORD_END_UPCASE,
|
|
257
282
|
|
|
258
|
-
/** ensure */
|
|
259
|
-
PM_TOKEN_KEYWORD_ENSURE,
|
|
260
|
-
|
|
261
283
|
/** false */
|
|
262
284
|
PM_TOKEN_KEYWORD_FALSE,
|
|
263
285
|
|
|
@@ -270,9 +292,6 @@ typedef enum pm_token_type {
|
|
|
270
292
|
/** if in the modifier form */
|
|
271
293
|
PM_TOKEN_KEYWORD_IF_MODIFIER,
|
|
272
294
|
|
|
273
|
-
/** in */
|
|
274
|
-
PM_TOKEN_KEYWORD_IN,
|
|
275
|
-
|
|
276
295
|
/** module */
|
|
277
296
|
PM_TOKEN_KEYWORD_MODULE,
|
|
278
297
|
|
|
@@ -291,9 +310,6 @@ typedef enum pm_token_type {
|
|
|
291
310
|
/** redo */
|
|
292
311
|
PM_TOKEN_KEYWORD_REDO,
|
|
293
312
|
|
|
294
|
-
/** rescue */
|
|
295
|
-
PM_TOKEN_KEYWORD_RESCUE,
|
|
296
|
-
|
|
297
313
|
/** rescue in the modifier form */
|
|
298
314
|
PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
|
|
299
315
|
|
|
@@ -309,9 +325,6 @@ typedef enum pm_token_type {
|
|
|
309
325
|
/** super */
|
|
310
326
|
PM_TOKEN_KEYWORD_SUPER,
|
|
311
327
|
|
|
312
|
-
/** then */
|
|
313
|
-
PM_TOKEN_KEYWORD_THEN,
|
|
314
|
-
|
|
315
328
|
/** true */
|
|
316
329
|
PM_TOKEN_KEYWORD_TRUE,
|
|
317
330
|
|
|
@@ -330,9 +343,6 @@ typedef enum pm_token_type {
|
|
|
330
343
|
/** until in the modifier form */
|
|
331
344
|
PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
|
|
332
345
|
|
|
333
|
-
/** when */
|
|
334
|
-
PM_TOKEN_KEYWORD_WHEN,
|
|
335
|
-
|
|
336
346
|
/** while */
|
|
337
347
|
PM_TOKEN_KEYWORD_WHILE,
|
|
338
348
|
|
|
@@ -387,9 +397,6 @@ typedef enum pm_token_type {
|
|
|
387
397
|
/** -> */
|
|
388
398
|
PM_TOKEN_MINUS_GREATER,
|
|
389
399
|
|
|
390
|
-
/** a newline character outside of other tokens */
|
|
391
|
-
PM_TOKEN_NEWLINE,
|
|
392
|
-
|
|
393
400
|
/** a numbered reference to a capture group in the previous regular expression match */
|
|
394
401
|
PM_TOKEN_NUMBERED_REFERENCE,
|
|
395
402
|
|
|
@@ -399,9 +406,6 @@ typedef enum pm_token_type {
|
|
|
399
406
|
/** ( for a parentheses node */
|
|
400
407
|
PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
|
|
401
408
|
|
|
402
|
-
/** ) */
|
|
403
|
-
PM_TOKEN_PARENTHESIS_RIGHT,
|
|
404
|
-
|
|
405
409
|
/** % */
|
|
406
410
|
PM_TOKEN_PERCENT,
|
|
407
411
|
|
|
@@ -423,9 +427,6 @@ typedef enum pm_token_type {
|
|
|
423
427
|
/** %W */
|
|
424
428
|
PM_TOKEN_PERCENT_UPPER_W,
|
|
425
429
|
|
|
426
|
-
/** | */
|
|
427
|
-
PM_TOKEN_PIPE,
|
|
428
|
-
|
|
429
430
|
/** |= */
|
|
430
431
|
PM_TOKEN_PIPE_EQUAL,
|
|
431
432
|
|
|
@@ -450,9 +451,6 @@ typedef enum pm_token_type {
|
|
|
450
451
|
/** the end of a regular expression */
|
|
451
452
|
PM_TOKEN_REGEXP_END,
|
|
452
453
|
|
|
453
|
-
/** ; */
|
|
454
|
-
PM_TOKEN_SEMICOLON,
|
|
455
|
-
|
|
456
454
|
/** / */
|
|
457
455
|
PM_TOKEN_SLASH,
|
|
458
456
|
|
|
@@ -519,6 +517,12 @@ typedef enum pm_token_type {
|
|
|
519
517
|
/** marker for the point in the file at which the parser should stop */
|
|
520
518
|
PM_TOKEN___END__,
|
|
521
519
|
|
|
520
|
+
/** a token that was expected but not found */
|
|
521
|
+
PM_TOKEN_MISSING,
|
|
522
|
+
|
|
523
|
+
/** a token that was not present but it is okay */
|
|
524
|
+
PM_TOKEN_NOT_PROVIDED,
|
|
525
|
+
|
|
522
526
|
/** The maximum token value. */
|
|
523
527
|
PM_TOKEN_MAXIMUM,
|
|
524
528
|
} pm_token_type_t;
|
|
@@ -1420,6 +1424,17 @@ typedef struct pm_array_pattern_node {
|
|
|
1420
1424
|
|
|
1421
1425
|
/**
|
|
1422
1426
|
* ArrayPatternNode#constant
|
|
1427
|
+
*
|
|
1428
|
+
* Represents the optional constant preceding the Array
|
|
1429
|
+
*
|
|
1430
|
+
* foo in Bar[]
|
|
1431
|
+
* ^^^
|
|
1432
|
+
*
|
|
1433
|
+
* foo in Bar[1, 2, 3]
|
|
1434
|
+
* ^^^
|
|
1435
|
+
*
|
|
1436
|
+
* foo in Bar::Baz[1, 2, 3]
|
|
1437
|
+
* ^^^^^^^^
|
|
1423
1438
|
*/
|
|
1424
1439
|
struct pm_node *constant;
|
|
1425
1440
|
|
|
@@ -2199,6 +2214,19 @@ typedef struct pm_call_node {
|
|
|
2199
2214
|
*/
|
|
2200
2215
|
pm_location_t closing_loc;
|
|
2201
2216
|
|
|
2217
|
+
/**
|
|
2218
|
+
* CallNode#equal_loc
|
|
2219
|
+
*
|
|
2220
|
+
* Represents the location of the equal sign, in the case that this is an attribute write.
|
|
2221
|
+
*
|
|
2222
|
+
* foo.bar = value
|
|
2223
|
+
* ^
|
|
2224
|
+
*
|
|
2225
|
+
* foo[bar] = value
|
|
2226
|
+
* ^
|
|
2227
|
+
*/
|
|
2228
|
+
pm_location_t equal_loc;
|
|
2229
|
+
|
|
2202
2230
|
/**
|
|
2203
2231
|
* CallNode#block
|
|
2204
2232
|
*
|
|
@@ -2623,7 +2651,7 @@ typedef struct pm_case_node {
|
|
|
2623
2651
|
* Represents the predicate of the case statement. This can be either `nil` or any [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
|
|
2624
2652
|
*
|
|
2625
2653
|
* case true; when false; end
|
|
2626
|
-
*
|
|
2654
|
+
* ^^^^
|
|
2627
2655
|
*/
|
|
2628
2656
|
struct pm_node *predicate;
|
|
2629
2657
|
|
|
@@ -2692,6 +2720,11 @@ typedef struct pm_class_node {
|
|
|
2692
2720
|
|
|
2693
2721
|
/**
|
|
2694
2722
|
* ClassNode#class_keyword_loc
|
|
2723
|
+
*
|
|
2724
|
+
* Represents the location of the `class` keyword.
|
|
2725
|
+
*
|
|
2726
|
+
* class Foo end
|
|
2727
|
+
* ^^^^^
|
|
2695
2728
|
*/
|
|
2696
2729
|
pm_location_t class_keyword_loc;
|
|
2697
2730
|
|
|
@@ -2702,26 +2735,51 @@ typedef struct pm_class_node {
|
|
|
2702
2735
|
|
|
2703
2736
|
/**
|
|
2704
2737
|
* ClassNode#inheritance_operator_loc
|
|
2738
|
+
*
|
|
2739
|
+
* Represents the location of the `<` operator.
|
|
2740
|
+
*
|
|
2741
|
+
* class Foo < Bar
|
|
2742
|
+
* ^
|
|
2705
2743
|
*/
|
|
2706
2744
|
pm_location_t inheritance_operator_loc;
|
|
2707
2745
|
|
|
2708
2746
|
/**
|
|
2709
2747
|
* ClassNode#superclass
|
|
2748
|
+
*
|
|
2749
|
+
* Represents the superclass of the class.
|
|
2750
|
+
*
|
|
2751
|
+
* class Foo < Bar
|
|
2752
|
+
* ^^^
|
|
2710
2753
|
*/
|
|
2711
2754
|
struct pm_node *superclass;
|
|
2712
2755
|
|
|
2713
2756
|
/**
|
|
2714
2757
|
* ClassNode#body
|
|
2758
|
+
*
|
|
2759
|
+
* Represents the body of the class.
|
|
2760
|
+
*
|
|
2761
|
+
* class Foo
|
|
2762
|
+
* foo
|
|
2763
|
+
* ^^^
|
|
2715
2764
|
*/
|
|
2716
2765
|
struct pm_node *body;
|
|
2717
2766
|
|
|
2718
2767
|
/**
|
|
2719
2768
|
* ClassNode#end_keyword_loc
|
|
2769
|
+
*
|
|
2770
|
+
* Represents the location of the `end` keyword.
|
|
2771
|
+
*
|
|
2772
|
+
* class Foo end
|
|
2773
|
+
* ^^^
|
|
2720
2774
|
*/
|
|
2721
2775
|
pm_location_t end_keyword_loc;
|
|
2722
2776
|
|
|
2723
2777
|
/**
|
|
2724
2778
|
* ClassNode#name
|
|
2779
|
+
*
|
|
2780
|
+
* The name of the class.
|
|
2781
|
+
*
|
|
2782
|
+
* class Foo end # name `:Foo`
|
|
2725
2783
|
*/
|
|
2726
2784
|
pm_constant_id_t name;
|
|
2727
2785
|
} pm_class_node_t;
|
|
@@ -3758,6 +3816,9 @@ typedef struct pm_false_node {
|
|
|
3758
3816
|
* foo in Foo(*bar, baz, *qux)
|
|
3759
3817
|
* ^^^^^^^^^^^^^^^^^^^^
|
|
3760
3818
|
*
|
|
3819
|
+
* foo => *bar, baz, *qux
|
|
3820
|
+
* ^^^^^^^^^^^^^^^
|
|
3821
|
+
*
|
|
3761
3822
|
* Type: ::PM_FIND_PATTERN_NODE
|
|
3762
3823
|
*
|
|
3763
3824
|
* @extends pm_node_t
|
|
@@ -3769,31 +3830,76 @@ typedef struct pm_find_pattern_node {
|
|
|
3769
3830
|
|
|
3770
3831
|
/**
|
|
3771
3832
|
* FindPatternNode#constant
|
|
3833
|
+
*
|
|
3834
|
+
* Represents the optional constant preceding the pattern
|
|
3835
|
+
*
|
|
3836
|
+
* foo in Foo(*bar, baz, *qux)
|
|
3837
|
+
* ^^^
|
|
3772
3838
|
*/
|
|
3773
3839
|
struct pm_node *constant;
|
|
3774
3840
|
|
|
3775
3841
|
/**
|
|
3776
3842
|
* FindPatternNode#left
|
|
3843
|
+
*
|
|
3844
|
+
* Represents the first wildcard node in the pattern.
|
|
3845
|
+
*
|
|
3846
|
+
* foo in *bar, baz, *qux
|
|
3847
|
+
* ^^^^
|
|
3848
|
+
*
|
|
3849
|
+
* foo in Foo(*bar, baz, *qux)
|
|
3850
|
+
* ^^^^
|
|
3777
3851
|
*/
|
|
3778
3852
|
struct pm_splat_node *left;
|
|
3779
3853
|
|
|
3780
3854
|
/**
|
|
3781
3855
|
* FindPatternNode#requireds
|
|
3856
|
+
*
|
|
3857
|
+
* Represents the nodes in between the wildcards.
|
|
3858
|
+
*
|
|
3859
|
+
* foo in *bar, baz, *qux
|
|
3860
|
+
* ^^^
|
|
3861
|
+
*
|
|
3862
|
+
* foo in Foo(*bar, baz, 1, *qux)
|
|
3863
|
+
* ^^^^^^
|
|
3782
3864
|
*/
|
|
3783
3865
|
struct pm_node_list requireds;
|
|
3784
3866
|
|
|
3785
3867
|
/**
|
|
3786
3868
|
* FindPatternNode#right
|
|
3869
|
+
*
|
|
3870
|
+
* Represents the second wildcard node in the pattern.
|
|
3871
|
+
*
|
|
3872
|
+
* foo in *bar, baz, *qux
|
|
3873
|
+
* ^^^^
|
|
3874
|
+
*
|
|
3875
|
+
* foo in Foo(*bar, baz, *qux)
|
|
3876
|
+
* ^^^^
|
|
3787
3877
|
*/
|
|
3788
3878
|
struct pm_node *right;
|
|
3789
3879
|
|
|
3790
3880
|
/**
|
|
3791
3881
|
* FindPatternNode#opening_loc
|
|
3882
|
+
*
|
|
3883
|
+
* The location of the opening brace.
|
|
3884
|
+
*
|
|
3885
|
+
* foo in [*bar, baz, *qux]
|
|
3886
|
+
* ^
|
|
3887
|
+
*
|
|
3888
|
+
* foo in Foo(*bar, baz, *qux)
|
|
3889
|
+
* ^
|
|
3792
3890
|
*/
|
|
3793
3891
|
pm_location_t opening_loc;
|
|
3794
3892
|
|
|
3795
3893
|
/**
|
|
3796
3894
|
* FindPatternNode#closing_loc
|
|
3895
|
+
*
|
|
3896
|
+
* The location of the closing brace.
|
|
3897
|
+
*
|
|
3898
|
+
* foo in [*bar, baz, *qux]
|
|
3899
|
+
* ^
|
|
3900
|
+
*
|
|
3901
|
+
* foo in Foo(*bar, baz, *qux)
|
|
3902
|
+
* ^
|
|
3797
3903
|
*/
|
|
3798
3904
|
pm_location_t closing_loc;
|
|
3799
3905
|
} pm_find_pattern_node_t;
|
|
@@ -4306,6 +4412,12 @@ typedef struct pm_hash_node {
|
|
|
4306
4412
|
* foo => { a: 1, b: 2, **c }
|
|
4307
4413
|
* ^^^^^^^^^^^^^^^^^^^
|
|
4308
4414
|
*
|
|
4415
|
+
* foo => Bar[a: 1, b: 2]
|
|
4416
|
+
* ^^^^^^^^^^^^^^^
|
|
4417
|
+
*
|
|
4418
|
+
* foo in { a: 1, b: 2 }
|
|
4419
|
+
* ^^^^^^^^^^^^^^
|
|
4420
|
+
*
|
|
4309
4421
|
* Type: ::PM_HASH_PATTERN_NODE
|
|
4310
4422
|
*
|
|
4311
4423
|
* @extends pm_node_t
|
|
@@ -4317,26 +4429,66 @@ typedef struct pm_hash_pattern_node {
|
|
|
4317
4429
|
|
|
4318
4430
|
/**
|
|
4319
4431
|
* HashPatternNode#constant
|
|
4432
|
+
*
|
|
4433
|
+
* Represents the optional constant preceding the Hash.
|
|
4434
|
+
*
|
|
4435
|
+
* foo => Bar[a: 1, b: 2]
|
|
4436
|
+
* ^^^
|
|
4437
|
+
*
|
|
4438
|
+
* foo => Bar::Baz[a: 1, b: 2]
|
|
4439
|
+
* ^^^^^^^^
|
|
4320
4440
|
*/
|
|
4321
4441
|
struct pm_node *constant;
|
|
4322
4442
|
|
|
4323
4443
|
/**
|
|
4324
4444
|
* HashPatternNode#elements
|
|
4445
|
+
*
|
|
4446
|
+
* Represents the explicit named hash keys and values.
|
|
4447
|
+
*
|
|
4448
|
+
* foo => { a: 1, b:, ** }
|
|
4449
|
+
* ^^^^^^^^
|
|
4325
4450
|
*/
|
|
4326
4451
|
struct pm_node_list elements;
|
|
4327
4452
|
|
|
4328
4453
|
/**
|
|
4329
4454
|
* HashPatternNode#rest
|
|
4455
|
+
*
|
|
4456
|
+
* Represents the rest of the Hash keys and values. This can be named, unnamed, or explicitly forbidden via `**nil`, this last one results in a `NoKeywordsParameterNode`.
|
|
4457
|
+
*
|
|
4458
|
+
* foo => { a: 1, b:, **c }
|
|
4459
|
+
* ^^^
|
|
4460
|
+
*
|
|
4461
|
+
* foo => { a: 1, b:, ** }
|
|
4462
|
+
* ^^
|
|
4463
|
+
*
|
|
4464
|
+
* foo => { a: 1, b:, **nil }
|
|
4465
|
+
* ^^^^^
|
|
4330
4466
|
*/
|
|
4331
4467
|
struct pm_node *rest;
|
|
4332
4468
|
|
|
4333
4469
|
/**
|
|
4334
4470
|
* HashPatternNode#opening_loc
|
|
4471
|
+
*
|
|
4472
|
+
* The location of the opening brace.
|
|
4473
|
+
*
|
|
4474
|
+
* foo => { a: 1 }
|
|
4475
|
+
* ^
|
|
4476
|
+
*
|
|
4477
|
+
* foo => Bar[a: 1]
|
|
4478
|
+
* ^
|
|
4335
4479
|
*/
|
|
4336
4480
|
pm_location_t opening_loc;
|
|
4337
4481
|
|
|
4338
4482
|
/**
|
|
4339
4483
|
* HashPatternNode#closing_loc
|
|
4484
|
+
*
|
|
4485
|
+
* The location of the closing brace.
|
|
4486
|
+
*
|
|
4487
|
+
* foo => { a: 1 }
|
|
4488
|
+
* ^
|
|
4489
|
+
*
|
|
4490
|
+
* foo => Bar[a: 1]
|
|
4491
|
+
* ^
|
|
4340
4492
|
*/
|
|
4341
4493
|
pm_location_t closing_loc;
|
|
4342
4494
|
} pm_hash_pattern_node_t;
|
|
@@ -5618,6 +5770,9 @@ typedef struct pm_local_variable_read_node {
|
|
|
5618
5770
|
* foo, bar = baz
|
|
5619
5771
|
* ^^^ ^^^
|
|
5620
5772
|
*
|
|
5773
|
+
* foo => baz
|
|
5774
|
+
* ^^^
|
|
5775
|
+
*
|
|
5621
5776
|
* Type: ::PM_LOCAL_VARIABLE_TARGET_NODE
|
|
5622
5777
|
*
|
|
5623
5778
|
* @extends pm_node_t
|
|
@@ -5820,16 +5975,70 @@ typedef struct pm_match_required_node {
|
|
|
5820
5975
|
|
|
5821
5976
|
/**
|
|
5822
5977
|
* MatchRequiredNode#value
|
|
5978
|
+
*
|
|
5979
|
+
* Represents the left-hand side of the operator.
|
|
5980
|
+
*
|
|
5981
|
+
* foo => bar
|
|
5982
|
+
* ^^^
|
|
5823
5983
|
*/
|
|
5824
5984
|
struct pm_node *value;
|
|
5825
5985
|
|
|
5826
5986
|
/**
|
|
5827
5987
|
* MatchRequiredNode#pattern
|
|
5988
|
+
*
|
|
5989
|
+
* Represents the right-hand side of the operator. The type of the node depends on the expression.
|
|
5990
|
+
*
|
|
5991
|
+
* Anything that looks like a local variable name (including `_`) will result in a `LocalVariableTargetNode`.
|
|
5992
|
+
*
|
|
5993
|
+
* foo => a # This is equivalent to writing `a = foo`
|
|
5994
|
+
* ^
|
|
5995
|
+
*
|
|
5996
|
+
* Using an explicit `Array` or combining expressions with `,` will result in a `ArrayPatternNode`. This can be preceded by a constant.
|
|
5997
|
+
*
|
|
5998
|
+
* foo => [a]
|
|
5999
|
+
* ^^^
|
|
6000
|
+
*
|
|
6001
|
+
* foo => a, b
|
|
6002
|
+
* ^^^^
|
|
6003
|
+
*
|
|
6004
|
+
* foo => Bar[a, b]
|
|
6005
|
+
* ^^^^^^^^^
|
|
6006
|
+
*
|
|
6007
|
+
* If the array pattern contains at least two wildcard matches, a `FindPatternNode` is created instead.
|
|
6008
|
+
*
|
|
6009
|
+
* foo => *, 1, *a
|
|
6010
|
+
* ^^^^^
|
|
6011
|
+
*
|
|
6012
|
+
* Using an explicit `Hash` or a constant with square brackets and hash keys in the square brackets will result in a `HashPatternNode`.
|
|
6013
|
+
*
|
|
6014
|
+
* foo => { a: 1, b: }
|
|
6015
|
+
*
|
|
6016
|
+
* foo => Bar[a: 1, b:]
|
|
6017
|
+
*
|
|
6018
|
+
* foo => Bar[**]
|
|
6019
|
+
*
|
|
6020
|
+
* To use any variable that needs run time evaluation, pinning is required. This results in a `PinnedVariableNode`
|
|
6021
|
+
*
|
|
6022
|
+
* foo => ^a
|
|
6023
|
+
* ^^
|
|
6024
|
+
*
|
|
6025
|
+
* Similar, any expression can be used with pinning. This results in a `PinnedExpressionNode`.
|
|
6026
|
+
*
|
|
6027
|
+
* foo => ^(a + 1)
|
|
6028
|
+
*
|
|
6029
|
+
* Anything else will result in the regular node for that expression, for example a `ConstantReadNode`.
|
|
6030
|
+
*
|
|
6031
|
+
* foo => CONST
|
|
5828
6032
|
*/
|
|
5829
6033
|
struct pm_node *pattern;
|
|
5830
6034
|
|
|
5831
6035
|
/**
|
|
5832
6036
|
* MatchRequiredNode#operator_loc
|
|
6037
|
+
*
|
|
6038
|
+
* The location of the operator.
|
|
6039
|
+
*
|
|
6040
|
+
* foo => bar
|
|
6041
|
+
* ^^
|
|
5833
6042
|
*/
|
|
5834
6043
|
pm_location_t operator_loc;
|
|
5835
6044
|
} pm_match_required_node_t;
|
|
@@ -6487,21 +6696,41 @@ typedef struct pm_pinned_expression_node {
|
|
|
6487
6696
|
|
|
6488
6697
|
/**
|
|
6489
6698
|
* PinnedExpressionNode#expression
|
|
6699
|
+
*
|
|
6700
|
+
* The expression used in the pinned expression
|
|
6701
|
+
*
|
|
6702
|
+
* foo in ^(bar)
|
|
6703
|
+
* ^^^
|
|
6490
6704
|
*/
|
|
6491
6705
|
struct pm_node *expression;
|
|
6492
6706
|
|
|
6493
6707
|
/**
|
|
6494
6708
|
* PinnedExpressionNode#operator_loc
|
|
6709
|
+
*
|
|
6710
|
+
* The location of the `^` operator
|
|
6711
|
+
*
|
|
6712
|
+
* foo in ^(bar)
|
|
6713
|
+
* ^
|
|
6495
6714
|
*/
|
|
6496
6715
|
pm_location_t operator_loc;
|
|
6497
6716
|
|
|
6498
6717
|
/**
|
|
6499
6718
|
* PinnedExpressionNode#lparen_loc
|
|
6719
|
+
*
|
|
6720
|
+
* The location of the opening parenthesis.
|
|
6721
|
+
*
|
|
6722
|
+
* foo in ^(bar)
|
|
6723
|
+
* ^
|
|
6500
6724
|
*/
|
|
6501
6725
|
pm_location_t lparen_loc;
|
|
6502
6726
|
|
|
6503
6727
|
/**
|
|
6504
6728
|
* PinnedExpressionNode#rparen_loc
|
|
6729
|
+
*
|
|
6730
|
+
* The location of the closing parenthesis.
|
|
6731
|
+
*
|
|
6732
|
+
* foo in ^(bar)
|
|
6733
|
+
* ^
|
|
6505
6734
|
*/
|
|
6506
6735
|
pm_location_t rparen_loc;
|
|
6507
6736
|
} pm_pinned_expression_node_t;
|
|
@@ -6525,11 +6754,21 @@ typedef struct pm_pinned_variable_node {
|
|
|
6525
6754
|
|
|
6526
6755
|
/**
|
|
6527
6756
|
* PinnedVariableNode#variable
|
|
6757
|
+
*
|
|
6758
|
+
* The variable used in the pinned expression
|
|
6759
|
+
*
|
|
6760
|
+
* foo in ^bar
|
|
6761
|
+
* ^^^
|
|
6528
6762
|
*/
|
|
6529
6763
|
struct pm_node *variable;
|
|
6530
6764
|
|
|
6531
6765
|
/**
|
|
6532
6766
|
* PinnedVariableNode#operator_loc
|
|
6767
|
+
*
|
|
6768
|
+
* The location of the `^` operator
|
|
6769
|
+
*
|
|
6770
|
+
* foo in ^bar
|
|
6771
|
+
* ^
|
|
6533
6772
|
*/
|
|
6534
6773
|
pm_location_t operator_loc;
|
|
6535
6774
|
} pm_pinned_variable_node_t;
|
|
@@ -7764,6 +8003,8 @@ typedef enum pm_arguments_node_flags {
|
|
|
7764
8003
|
|
|
7765
8004
|
/** if the arguments contain multiple splats */
|
|
7766
8005
|
PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
|
|
8006
|
+
|
|
8007
|
+
PM_ARGUMENTS_NODE_FLAGS_LAST,
|
|
7767
8008
|
} pm_arguments_node_flags_t;
|
|
7768
8009
|
|
|
7769
8010
|
/**
|
|
@@ -7772,6 +8013,8 @@ typedef enum pm_arguments_node_flags {
|
|
|
7772
8013
|
typedef enum pm_array_node_flags {
|
|
7773
8014
|
/** if array contains splat nodes */
|
|
7774
8015
|
PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
|
|
8016
|
+
|
|
8017
|
+
PM_ARRAY_NODE_FLAGS_LAST,
|
|
7775
8018
|
} pm_array_node_flags_t;
|
|
7776
8019
|
|
|
7777
8020
|
/**
|
|
@@ -7789,6 +8032,8 @@ typedef enum pm_call_node_flags {
|
|
|
7789
8032
|
|
|
7790
8033
|
/** a call that ignores method visibility */
|
|
7791
8034
|
PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
|
|
8035
|
+
|
|
8036
|
+
PM_CALL_NODE_FLAGS_LAST,
|
|
7792
8037
|
} pm_call_node_flags_t;
|
|
7793
8038
|
|
|
7794
8039
|
/**
|
|
@@ -7800,6 +8045,8 @@ typedef enum pm_encoding_flags {
|
|
|
7800
8045
|
|
|
7801
8046
|
/** internal bytes forced the encoding to binary */
|
|
7802
8047
|
PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
|
|
8048
|
+
|
|
8049
|
+
PM_ENCODING_FLAGS_LAST,
|
|
7803
8050
|
} pm_encoding_flags_t;
|
|
7804
8051
|
|
|
7805
8052
|
/**
|
|
@@ -7817,6 +8064,8 @@ typedef enum pm_integer_base_flags {
|
|
|
7817
8064
|
|
|
7818
8065
|
/** 0x prefix */
|
|
7819
8066
|
PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
|
|
8067
|
+
|
|
8068
|
+
PM_INTEGER_BASE_FLAGS_LAST,
|
|
7820
8069
|
} pm_integer_base_flags_t;
|
|
7821
8070
|
|
|
7822
8071
|
/**
|
|
@@ -7828,6 +8077,8 @@ typedef enum pm_interpolated_string_node_flags {
|
|
|
7828
8077
|
|
|
7829
8078
|
/** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal`; only for adjacent string literals like `'a' 'b'` */
|
|
7830
8079
|
PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
|
|
8080
|
+
|
|
8081
|
+
PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
|
|
7831
8082
|
} pm_interpolated_string_node_flags_t;
|
|
7832
8083
|
|
|
7833
8084
|
/**
|
|
@@ -7836,6 +8087,8 @@ typedef enum pm_interpolated_string_node_flags {
|
|
|
7836
8087
|
typedef enum pm_keyword_hash_node_flags {
|
|
7837
8088
|
/** a keyword hash which only has `AssocNode` elements all with symbol keys, which means the elements can be treated as keyword arguments */
|
|
7838
8089
|
PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
|
|
8090
|
+
|
|
8091
|
+
PM_KEYWORD_HASH_NODE_FLAGS_LAST,
|
|
7839
8092
|
} pm_keyword_hash_node_flags_t;
|
|
7840
8093
|
|
|
7841
8094
|
/**
|
|
@@ -7844,6 +8097,8 @@ typedef enum pm_keyword_hash_node_flags {
|
|
|
7844
8097
|
typedef enum pm_loop_flags {
|
|
7845
8098
|
/** a loop after a begin statement, so the body is executed first before the condition */
|
|
7846
8099
|
PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
|
|
8100
|
+
|
|
8101
|
+
PM_LOOP_FLAGS_LAST,
|
|
7847
8102
|
} pm_loop_flags_t;
|
|
7848
8103
|
|
|
7849
8104
|
/**
|
|
@@ -7852,6 +8107,8 @@ typedef enum pm_loop_flags {
|
|
|
7852
8107
|
typedef enum pm_parameter_flags {
|
|
7853
8108
|
/** a parameter name that has been repeated in the method signature */
|
|
7854
8109
|
PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
|
|
8110
|
+
|
|
8111
|
+
PM_PARAMETER_FLAGS_LAST,
|
|
7855
8112
|
} pm_parameter_flags_t;
|
|
7856
8113
|
|
|
7857
8114
|
/**
|
|
@@ -7860,6 +8117,8 @@ typedef enum pm_parameter_flags {
|
|
|
7860
8117
|
typedef enum pm_parentheses_node_flags {
|
|
7861
8118
|
/** parentheses that contain multiple potentially void statements */
|
|
7862
8119
|
PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
|
|
8120
|
+
|
|
8121
|
+
PM_PARENTHESES_NODE_FLAGS_LAST,
|
|
7863
8122
|
} pm_parentheses_node_flags_t;
|
|
7864
8123
|
|
|
7865
8124
|
/**
|
|
@@ -7868,6 +8127,8 @@ typedef enum pm_parentheses_node_flags {
|
|
|
7868
8127
|
typedef enum pm_range_flags {
|
|
7869
8128
|
/** ... operator */
|
|
7870
8129
|
PM_RANGE_FLAGS_EXCLUDE_END = 4,
|
|
8130
|
+
|
|
8131
|
+
PM_RANGE_FLAGS_LAST,
|
|
7871
8132
|
} pm_range_flags_t;
|
|
7872
8133
|
|
|
7873
8134
|
/**
|
|
@@ -7906,6 +8167,8 @@ typedef enum pm_regular_expression_flags {
|
|
|
7906
8167
|
|
|
7907
8168
|
/** internal bytes forced the encoding to US-ASCII */
|
|
7908
8169
|
PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
|
|
8170
|
+
|
|
8171
|
+
PM_REGULAR_EXPRESSION_FLAGS_LAST,
|
|
7909
8172
|
} pm_regular_expression_flags_t;
|
|
7910
8173
|
|
|
7911
8174
|
/**
|
|
@@ -7920,6 +8183,8 @@ typedef enum pm_shareable_constant_node_flags {
|
|
|
7920
8183
|
|
|
7921
8184
|
/** constant writes that should be modified with shareable constant value experimental copy */
|
|
7922
8185
|
PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
|
|
8186
|
+
|
|
8187
|
+
PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
|
|
7923
8188
|
} pm_shareable_constant_node_flags_t;
|
|
7924
8189
|
|
|
7925
8190
|
/**
|
|
@@ -7937,6 +8202,8 @@ typedef enum pm_string_flags {
|
|
|
7937
8202
|
|
|
7938
8203
|
/** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal` */
|
|
7939
8204
|
PM_STRING_FLAGS_MUTABLE = 32,
|
|
8205
|
+
|
|
8206
|
+
PM_STRING_FLAGS_LAST,
|
|
7940
8207
|
} pm_string_flags_t;
|
|
7941
8208
|
|
|
7942
8209
|
/**
|
|
@@ -7951,6 +8218,8 @@ typedef enum pm_symbol_flags {
|
|
|
7951
8218
|
|
|
7952
8219
|
/** internal bytes forced the encoding to US-ASCII */
|
|
7953
8220
|
PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
|
|
8221
|
+
|
|
8222
|
+
PM_SYMBOL_FLAGS_LAST,
|
|
7954
8223
|
} pm_symbol_flags_t;
|
|
7955
8224
|
|
|
7956
8225
|
/**
|