debase-ruby_core_source 3.3.1 → 3.3.6
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/.gitignore +2 -1
- data/.idea/vcs.xml +28 -0
- data/CHANGELOG.md +8 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/addr2line.h +22 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/builtin.h +117 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/list/list.h +791 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/constant.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/darray.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +423 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/dln.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/eval_intern.h +343 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/hrtime.h +227 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/id.h +343 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/id_table.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/insns.inc +251 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/insns_info.inc +9215 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/array.h +151 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/basic_operators.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/bignum.h +244 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/bits.h +568 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/class.h +277 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/cmdlineopt.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/compar.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/compile.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/cont.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/encoding.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/error.h +216 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/eval.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/gc.h +364 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/hash.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/imemo.h +240 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/inits.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/io.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/missing.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/numeric.h +273 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/object.h +62 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/parse.h +108 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/proc.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/process.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/random.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/rational.h +71 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/re.h +28 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/ruby_parser.h +69 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/sanitizers.h +186 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/signal.h +25 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/string.h +160 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/struct.h +127 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/symbol.h +45 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/thread.h +78 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/transcode.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/variable.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/vm.h +136 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/internal.h +112 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/iseq.h +338 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/known_errors.inc +791 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/method.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/node.h +128 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/node_name.inc +212 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/parse.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/parser_bits.h +564 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/parser_node.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/parser_st.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/parser_value.h +106 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/ast.h +4612 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/defines.h +94 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/diagnostic.h +297 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/encoding.h +248 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/extension.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/node.h +57 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/options.h +204 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/pack.h +152 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/parser.h +716 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/prettyprint.h +26 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/prism.h +272 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/regexp.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_buffer.h +146 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_char.h +205 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_constant_pool.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_list.h +97 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_memchr.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_newline_list.h +104 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_state_stack.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_string.h +150 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_string_list.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_strncasecmp.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/util/pm_strpbrk.h +43 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism/version.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/prism_compile.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/probes_helper.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ractor_core.h +393 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/regenc.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/regint.h +1006 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/regparse.h +371 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/rjit.h +101 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/rjit_c.h +164 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/rubyparser.h +1405 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/shape.h +233 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/symbol.h +118 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/thread_none.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/thread_pthread.h +166 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/thread_win32.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/timev.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/variable.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/version.h +69 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm.inc +5436 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_callinfo.h +614 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_core.h +2202 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_debug.h +122 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_exec.h +199 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_insnhelper.h +261 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_opts.h +67 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/vmtc.inc +245 -0
- data/lib/debase/ruby_core_source/ruby-3.3.5-p100/yjit.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/addr2line.h +22 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/builtin.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ccan/list/list.h +791 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/constant.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +423 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/eval_intern.h +324 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/hrtime.h +237 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +343 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id_table.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +259 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +9530 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +151 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bignum.h +244 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +568 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +283 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/cmdlineopt.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/compar.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/compile.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/cont.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/encoding.h +36 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +216 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/eval.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +334 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +260 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/inits.h +47 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +140 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/missing.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/numeric.h +274 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/object.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +117 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/proc.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/process.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/random.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/rational.h +71 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/re.h +28 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ruby_parser.h +102 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +297 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/signal.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/st.h +11 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +182 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/struct.h +127 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/symbol.h +45 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +79 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/transcode.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/variable.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal.h +108 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/iseq.h +340 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +1419 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/node.h +111 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/node_name.inc +224 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parser_bits.h +564 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parser_node.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parser_st.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parser_value.h +106 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +6245 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +206 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +433 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/encoding.h +283 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +150 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +305 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/pack.h +163 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +891 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/prettyprint.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/prism.h +347 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +120 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_buffer.h +218 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +205 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +226 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_list.h +97 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_memchr.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +102 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +174 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_strncasecmp.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_strpbrk.h +46 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +88 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/probes_helper.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +393 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regenc.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +1010 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regparse.h +371 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rjit.h +101 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rjit_c.h +165 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +1430 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +233 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +118 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_none.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +166 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_win32.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/timev.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/variable.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +69 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +5643 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +605 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +2236 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_debug.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_exec.h +199 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +272 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_opts.h +67 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +253 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/yjit.h +79 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +22 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +791 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/darray.h +209 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/debug_counter.h +423 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/dln.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +324 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +237 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id.h +347 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/insns.inc +265 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/insns_info.inc +9902 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/array.h +152 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/basic_operators.h +64 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +244 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bits.h +568 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/class.h +283 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +36 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/error.h +218 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/gc.h +322 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/hash.h +192 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/imemo.h +261 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +47 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/io.h +143 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +274 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/parse.h +129 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +71 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +28 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +102 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/sanitizers.h +326 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +11 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/string.h +186 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +127 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +45 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/thread.h +85 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/vm.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +108 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +340 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/known_errors.inc +1419 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/method.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +111 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +224 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parse.h +244 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +564 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +106 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/ast.h +7524 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/defines.h +242 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/diagnostic.h +450 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +283 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/extension.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/node.h +129 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/options.h +396 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +163 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/parser.h +933 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +336 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/regexp.h +43 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/static_literals.h +121 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +218 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_char.h +204 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_constant_pool.h +218 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_integer.h +126 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +97 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_newline_list.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_string.h +190 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +46 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/version.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism_compile.h +99 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ractor_core.h +382 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regint.h +1006 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +371 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +101 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +165 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rubyparser.h +1350 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/shape.h +234 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/symbol.h +123 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_pthread.h +168 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/version.h +69 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm.inc +5840 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_callinfo.h +627 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_core.h +2222 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +199 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_insnhelper.h +277 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +67 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vmtc.inc +259 -0
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +79 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +436 -6
@@ -0,0 +1,4612 @@
|
|
1
|
+
/******************************************************************************/
|
2
|
+
/* This file is generated by the templates/template.rb script and should not */
|
3
|
+
/* be modified manually. See */
|
4
|
+
/* templates/include/prism/ast.h.erb */
|
5
|
+
/* if you are looking to modify the */
|
6
|
+
/* template */
|
7
|
+
/******************************************************************************/
|
8
|
+
/**
|
9
|
+
* @file ast.h
|
10
|
+
*
|
11
|
+
* The abstract syntax tree.
|
12
|
+
*/
|
13
|
+
#ifndef PRISM_AST_H
|
14
|
+
#define PRISM_AST_H
|
15
|
+
|
16
|
+
#include "prism/defines.h"
|
17
|
+
#include "prism/util/pm_constant_pool.h"
|
18
|
+
#include "prism/util/pm_string.h"
|
19
|
+
|
20
|
+
#include <assert.h>
|
21
|
+
#include <stddef.h>
|
22
|
+
#include <stdint.h>
|
23
|
+
|
24
|
+
/**
|
25
|
+
* This enum represents every type of token in the Ruby source.
|
26
|
+
*/
|
27
|
+
typedef enum pm_token_type {
|
28
|
+
/** final token in the file */
|
29
|
+
PM_TOKEN_EOF = 1,
|
30
|
+
|
31
|
+
/** a token that was expected but not found */
|
32
|
+
PM_TOKEN_MISSING,
|
33
|
+
|
34
|
+
/** a token that was not present but it is okay */
|
35
|
+
PM_TOKEN_NOT_PROVIDED,
|
36
|
+
|
37
|
+
/** & */
|
38
|
+
PM_TOKEN_AMPERSAND,
|
39
|
+
|
40
|
+
/** && */
|
41
|
+
PM_TOKEN_AMPERSAND_AMPERSAND,
|
42
|
+
|
43
|
+
/** &&= */
|
44
|
+
PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
|
45
|
+
|
46
|
+
/** &. */
|
47
|
+
PM_TOKEN_AMPERSAND_DOT,
|
48
|
+
|
49
|
+
/** &= */
|
50
|
+
PM_TOKEN_AMPERSAND_EQUAL,
|
51
|
+
|
52
|
+
/** ` */
|
53
|
+
PM_TOKEN_BACKTICK,
|
54
|
+
|
55
|
+
/** a back reference */
|
56
|
+
PM_TOKEN_BACK_REFERENCE,
|
57
|
+
|
58
|
+
/** ! or !@ */
|
59
|
+
PM_TOKEN_BANG,
|
60
|
+
|
61
|
+
/** != */
|
62
|
+
PM_TOKEN_BANG_EQUAL,
|
63
|
+
|
64
|
+
/** !~ */
|
65
|
+
PM_TOKEN_BANG_TILDE,
|
66
|
+
|
67
|
+
/** { */
|
68
|
+
PM_TOKEN_BRACE_LEFT,
|
69
|
+
|
70
|
+
/** } */
|
71
|
+
PM_TOKEN_BRACE_RIGHT,
|
72
|
+
|
73
|
+
/** [ */
|
74
|
+
PM_TOKEN_BRACKET_LEFT,
|
75
|
+
|
76
|
+
/** [ for the beginning of an array */
|
77
|
+
PM_TOKEN_BRACKET_LEFT_ARRAY,
|
78
|
+
|
79
|
+
/** [] */
|
80
|
+
PM_TOKEN_BRACKET_LEFT_RIGHT,
|
81
|
+
|
82
|
+
/** []= */
|
83
|
+
PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
|
84
|
+
|
85
|
+
/** ] */
|
86
|
+
PM_TOKEN_BRACKET_RIGHT,
|
87
|
+
|
88
|
+
/** ^ */
|
89
|
+
PM_TOKEN_CARET,
|
90
|
+
|
91
|
+
/** ^= */
|
92
|
+
PM_TOKEN_CARET_EQUAL,
|
93
|
+
|
94
|
+
/** a character literal */
|
95
|
+
PM_TOKEN_CHARACTER_LITERAL,
|
96
|
+
|
97
|
+
/** a class variable */
|
98
|
+
PM_TOKEN_CLASS_VARIABLE,
|
99
|
+
|
100
|
+
/** : */
|
101
|
+
PM_TOKEN_COLON,
|
102
|
+
|
103
|
+
/** :: */
|
104
|
+
PM_TOKEN_COLON_COLON,
|
105
|
+
|
106
|
+
/** , */
|
107
|
+
PM_TOKEN_COMMA,
|
108
|
+
|
109
|
+
/** a comment */
|
110
|
+
PM_TOKEN_COMMENT,
|
111
|
+
|
112
|
+
/** a constant */
|
113
|
+
PM_TOKEN_CONSTANT,
|
114
|
+
|
115
|
+
/** the . call operator */
|
116
|
+
PM_TOKEN_DOT,
|
117
|
+
|
118
|
+
/** the .. range operator */
|
119
|
+
PM_TOKEN_DOT_DOT,
|
120
|
+
|
121
|
+
/** the ... range operator or forwarding parameter */
|
122
|
+
PM_TOKEN_DOT_DOT_DOT,
|
123
|
+
|
124
|
+
/** =begin */
|
125
|
+
PM_TOKEN_EMBDOC_BEGIN,
|
126
|
+
|
127
|
+
/** =end */
|
128
|
+
PM_TOKEN_EMBDOC_END,
|
129
|
+
|
130
|
+
/** a line inside of embedded documentation */
|
131
|
+
PM_TOKEN_EMBDOC_LINE,
|
132
|
+
|
133
|
+
/** #{ */
|
134
|
+
PM_TOKEN_EMBEXPR_BEGIN,
|
135
|
+
|
136
|
+
/** } */
|
137
|
+
PM_TOKEN_EMBEXPR_END,
|
138
|
+
|
139
|
+
/** # */
|
140
|
+
PM_TOKEN_EMBVAR,
|
141
|
+
|
142
|
+
/** = */
|
143
|
+
PM_TOKEN_EQUAL,
|
144
|
+
|
145
|
+
/** == */
|
146
|
+
PM_TOKEN_EQUAL_EQUAL,
|
147
|
+
|
148
|
+
/** === */
|
149
|
+
PM_TOKEN_EQUAL_EQUAL_EQUAL,
|
150
|
+
|
151
|
+
/** => */
|
152
|
+
PM_TOKEN_EQUAL_GREATER,
|
153
|
+
|
154
|
+
/** =~ */
|
155
|
+
PM_TOKEN_EQUAL_TILDE,
|
156
|
+
|
157
|
+
/** a floating point number */
|
158
|
+
PM_TOKEN_FLOAT,
|
159
|
+
|
160
|
+
/** a floating pointer number with an imaginary suffix */
|
161
|
+
PM_TOKEN_FLOAT_IMAGINARY,
|
162
|
+
|
163
|
+
/** a floating pointer number with a rational suffix */
|
164
|
+
PM_TOKEN_FLOAT_RATIONAL,
|
165
|
+
|
166
|
+
/** a floating pointer number with a rational and imaginary suffix */
|
167
|
+
PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
|
168
|
+
|
169
|
+
/** a global variable */
|
170
|
+
PM_TOKEN_GLOBAL_VARIABLE,
|
171
|
+
|
172
|
+
/** > */
|
173
|
+
PM_TOKEN_GREATER,
|
174
|
+
|
175
|
+
/** >= */
|
176
|
+
PM_TOKEN_GREATER_EQUAL,
|
177
|
+
|
178
|
+
/** >> */
|
179
|
+
PM_TOKEN_GREATER_GREATER,
|
180
|
+
|
181
|
+
/** >>= */
|
182
|
+
PM_TOKEN_GREATER_GREATER_EQUAL,
|
183
|
+
|
184
|
+
/** the end of a heredoc */
|
185
|
+
PM_TOKEN_HEREDOC_END,
|
186
|
+
|
187
|
+
/** the start of a heredoc */
|
188
|
+
PM_TOKEN_HEREDOC_START,
|
189
|
+
|
190
|
+
/** an identifier */
|
191
|
+
PM_TOKEN_IDENTIFIER,
|
192
|
+
|
193
|
+
/** an ignored newline */
|
194
|
+
PM_TOKEN_IGNORED_NEWLINE,
|
195
|
+
|
196
|
+
/** an instance variable */
|
197
|
+
PM_TOKEN_INSTANCE_VARIABLE,
|
198
|
+
|
199
|
+
/** an integer (any base) */
|
200
|
+
PM_TOKEN_INTEGER,
|
201
|
+
|
202
|
+
/** an integer with an imaginary suffix */
|
203
|
+
PM_TOKEN_INTEGER_IMAGINARY,
|
204
|
+
|
205
|
+
/** an integer with a rational suffix */
|
206
|
+
PM_TOKEN_INTEGER_RATIONAL,
|
207
|
+
|
208
|
+
/** an integer with a rational and imaginary suffix */
|
209
|
+
PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
|
210
|
+
|
211
|
+
/** alias */
|
212
|
+
PM_TOKEN_KEYWORD_ALIAS,
|
213
|
+
|
214
|
+
/** and */
|
215
|
+
PM_TOKEN_KEYWORD_AND,
|
216
|
+
|
217
|
+
/** begin */
|
218
|
+
PM_TOKEN_KEYWORD_BEGIN,
|
219
|
+
|
220
|
+
/** BEGIN */
|
221
|
+
PM_TOKEN_KEYWORD_BEGIN_UPCASE,
|
222
|
+
|
223
|
+
/** break */
|
224
|
+
PM_TOKEN_KEYWORD_BREAK,
|
225
|
+
|
226
|
+
/** case */
|
227
|
+
PM_TOKEN_KEYWORD_CASE,
|
228
|
+
|
229
|
+
/** class */
|
230
|
+
PM_TOKEN_KEYWORD_CLASS,
|
231
|
+
|
232
|
+
/** def */
|
233
|
+
PM_TOKEN_KEYWORD_DEF,
|
234
|
+
|
235
|
+
/** defined? */
|
236
|
+
PM_TOKEN_KEYWORD_DEFINED,
|
237
|
+
|
238
|
+
/** do */
|
239
|
+
PM_TOKEN_KEYWORD_DO,
|
240
|
+
|
241
|
+
/** do keyword for a predicate in a while, until, or for loop */
|
242
|
+
PM_TOKEN_KEYWORD_DO_LOOP,
|
243
|
+
|
244
|
+
/** else */
|
245
|
+
PM_TOKEN_KEYWORD_ELSE,
|
246
|
+
|
247
|
+
/** elsif */
|
248
|
+
PM_TOKEN_KEYWORD_ELSIF,
|
249
|
+
|
250
|
+
/** end */
|
251
|
+
PM_TOKEN_KEYWORD_END,
|
252
|
+
|
253
|
+
/** END */
|
254
|
+
PM_TOKEN_KEYWORD_END_UPCASE,
|
255
|
+
|
256
|
+
/** ensure */
|
257
|
+
PM_TOKEN_KEYWORD_ENSURE,
|
258
|
+
|
259
|
+
/** false */
|
260
|
+
PM_TOKEN_KEYWORD_FALSE,
|
261
|
+
|
262
|
+
/** for */
|
263
|
+
PM_TOKEN_KEYWORD_FOR,
|
264
|
+
|
265
|
+
/** if */
|
266
|
+
PM_TOKEN_KEYWORD_IF,
|
267
|
+
|
268
|
+
/** if in the modifier form */
|
269
|
+
PM_TOKEN_KEYWORD_IF_MODIFIER,
|
270
|
+
|
271
|
+
/** in */
|
272
|
+
PM_TOKEN_KEYWORD_IN,
|
273
|
+
|
274
|
+
/** module */
|
275
|
+
PM_TOKEN_KEYWORD_MODULE,
|
276
|
+
|
277
|
+
/** next */
|
278
|
+
PM_TOKEN_KEYWORD_NEXT,
|
279
|
+
|
280
|
+
/** nil */
|
281
|
+
PM_TOKEN_KEYWORD_NIL,
|
282
|
+
|
283
|
+
/** not */
|
284
|
+
PM_TOKEN_KEYWORD_NOT,
|
285
|
+
|
286
|
+
/** or */
|
287
|
+
PM_TOKEN_KEYWORD_OR,
|
288
|
+
|
289
|
+
/** redo */
|
290
|
+
PM_TOKEN_KEYWORD_REDO,
|
291
|
+
|
292
|
+
/** rescue */
|
293
|
+
PM_TOKEN_KEYWORD_RESCUE,
|
294
|
+
|
295
|
+
/** rescue in the modifier form */
|
296
|
+
PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
|
297
|
+
|
298
|
+
/** retry */
|
299
|
+
PM_TOKEN_KEYWORD_RETRY,
|
300
|
+
|
301
|
+
/** return */
|
302
|
+
PM_TOKEN_KEYWORD_RETURN,
|
303
|
+
|
304
|
+
/** self */
|
305
|
+
PM_TOKEN_KEYWORD_SELF,
|
306
|
+
|
307
|
+
/** super */
|
308
|
+
PM_TOKEN_KEYWORD_SUPER,
|
309
|
+
|
310
|
+
/** then */
|
311
|
+
PM_TOKEN_KEYWORD_THEN,
|
312
|
+
|
313
|
+
/** true */
|
314
|
+
PM_TOKEN_KEYWORD_TRUE,
|
315
|
+
|
316
|
+
/** undef */
|
317
|
+
PM_TOKEN_KEYWORD_UNDEF,
|
318
|
+
|
319
|
+
/** unless */
|
320
|
+
PM_TOKEN_KEYWORD_UNLESS,
|
321
|
+
|
322
|
+
/** unless in the modifier form */
|
323
|
+
PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
|
324
|
+
|
325
|
+
/** until */
|
326
|
+
PM_TOKEN_KEYWORD_UNTIL,
|
327
|
+
|
328
|
+
/** until in the modifier form */
|
329
|
+
PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
|
330
|
+
|
331
|
+
/** when */
|
332
|
+
PM_TOKEN_KEYWORD_WHEN,
|
333
|
+
|
334
|
+
/** while */
|
335
|
+
PM_TOKEN_KEYWORD_WHILE,
|
336
|
+
|
337
|
+
/** while in the modifier form */
|
338
|
+
PM_TOKEN_KEYWORD_WHILE_MODIFIER,
|
339
|
+
|
340
|
+
/** yield */
|
341
|
+
PM_TOKEN_KEYWORD_YIELD,
|
342
|
+
|
343
|
+
/** __ENCODING__ */
|
344
|
+
PM_TOKEN_KEYWORD___ENCODING__,
|
345
|
+
|
346
|
+
/** __FILE__ */
|
347
|
+
PM_TOKEN_KEYWORD___FILE__,
|
348
|
+
|
349
|
+
/** __LINE__ */
|
350
|
+
PM_TOKEN_KEYWORD___LINE__,
|
351
|
+
|
352
|
+
/** a label */
|
353
|
+
PM_TOKEN_LABEL,
|
354
|
+
|
355
|
+
/** the end of a label */
|
356
|
+
PM_TOKEN_LABEL_END,
|
357
|
+
|
358
|
+
/** { */
|
359
|
+
PM_TOKEN_LAMBDA_BEGIN,
|
360
|
+
|
361
|
+
/** < */
|
362
|
+
PM_TOKEN_LESS,
|
363
|
+
|
364
|
+
/** <= */
|
365
|
+
PM_TOKEN_LESS_EQUAL,
|
366
|
+
|
367
|
+
/** <=> */
|
368
|
+
PM_TOKEN_LESS_EQUAL_GREATER,
|
369
|
+
|
370
|
+
/** << */
|
371
|
+
PM_TOKEN_LESS_LESS,
|
372
|
+
|
373
|
+
/** <<= */
|
374
|
+
PM_TOKEN_LESS_LESS_EQUAL,
|
375
|
+
|
376
|
+
/** a method name */
|
377
|
+
PM_TOKEN_METHOD_NAME,
|
378
|
+
|
379
|
+
/** - */
|
380
|
+
PM_TOKEN_MINUS,
|
381
|
+
|
382
|
+
/** -= */
|
383
|
+
PM_TOKEN_MINUS_EQUAL,
|
384
|
+
|
385
|
+
/** -> */
|
386
|
+
PM_TOKEN_MINUS_GREATER,
|
387
|
+
|
388
|
+
/** a newline character outside of other tokens */
|
389
|
+
PM_TOKEN_NEWLINE,
|
390
|
+
|
391
|
+
/** a numbered reference to a capture group in the previous regular expression match */
|
392
|
+
PM_TOKEN_NUMBERED_REFERENCE,
|
393
|
+
|
394
|
+
/** ( */
|
395
|
+
PM_TOKEN_PARENTHESIS_LEFT,
|
396
|
+
|
397
|
+
/** ( for a parentheses node */
|
398
|
+
PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
|
399
|
+
|
400
|
+
/** ) */
|
401
|
+
PM_TOKEN_PARENTHESIS_RIGHT,
|
402
|
+
|
403
|
+
/** % */
|
404
|
+
PM_TOKEN_PERCENT,
|
405
|
+
|
406
|
+
/** %= */
|
407
|
+
PM_TOKEN_PERCENT_EQUAL,
|
408
|
+
|
409
|
+
/** %i */
|
410
|
+
PM_TOKEN_PERCENT_LOWER_I,
|
411
|
+
|
412
|
+
/** %w */
|
413
|
+
PM_TOKEN_PERCENT_LOWER_W,
|
414
|
+
|
415
|
+
/** %x */
|
416
|
+
PM_TOKEN_PERCENT_LOWER_X,
|
417
|
+
|
418
|
+
/** %I */
|
419
|
+
PM_TOKEN_PERCENT_UPPER_I,
|
420
|
+
|
421
|
+
/** %W */
|
422
|
+
PM_TOKEN_PERCENT_UPPER_W,
|
423
|
+
|
424
|
+
/** | */
|
425
|
+
PM_TOKEN_PIPE,
|
426
|
+
|
427
|
+
/** |= */
|
428
|
+
PM_TOKEN_PIPE_EQUAL,
|
429
|
+
|
430
|
+
/** || */
|
431
|
+
PM_TOKEN_PIPE_PIPE,
|
432
|
+
|
433
|
+
/** ||= */
|
434
|
+
PM_TOKEN_PIPE_PIPE_EQUAL,
|
435
|
+
|
436
|
+
/** + */
|
437
|
+
PM_TOKEN_PLUS,
|
438
|
+
|
439
|
+
/** += */
|
440
|
+
PM_TOKEN_PLUS_EQUAL,
|
441
|
+
|
442
|
+
/** ? */
|
443
|
+
PM_TOKEN_QUESTION_MARK,
|
444
|
+
|
445
|
+
/** the beginning of a regular expression */
|
446
|
+
PM_TOKEN_REGEXP_BEGIN,
|
447
|
+
|
448
|
+
/** the end of a regular expression */
|
449
|
+
PM_TOKEN_REGEXP_END,
|
450
|
+
|
451
|
+
/** ; */
|
452
|
+
PM_TOKEN_SEMICOLON,
|
453
|
+
|
454
|
+
/** / */
|
455
|
+
PM_TOKEN_SLASH,
|
456
|
+
|
457
|
+
/** /= */
|
458
|
+
PM_TOKEN_SLASH_EQUAL,
|
459
|
+
|
460
|
+
/** * */
|
461
|
+
PM_TOKEN_STAR,
|
462
|
+
|
463
|
+
/** *= */
|
464
|
+
PM_TOKEN_STAR_EQUAL,
|
465
|
+
|
466
|
+
/** ** */
|
467
|
+
PM_TOKEN_STAR_STAR,
|
468
|
+
|
469
|
+
/** **= */
|
470
|
+
PM_TOKEN_STAR_STAR_EQUAL,
|
471
|
+
|
472
|
+
/** the beginning of a string */
|
473
|
+
PM_TOKEN_STRING_BEGIN,
|
474
|
+
|
475
|
+
/** the contents of a string */
|
476
|
+
PM_TOKEN_STRING_CONTENT,
|
477
|
+
|
478
|
+
/** the end of a string */
|
479
|
+
PM_TOKEN_STRING_END,
|
480
|
+
|
481
|
+
/** the beginning of a symbol */
|
482
|
+
PM_TOKEN_SYMBOL_BEGIN,
|
483
|
+
|
484
|
+
/** ~ or ~@ */
|
485
|
+
PM_TOKEN_TILDE,
|
486
|
+
|
487
|
+
/** unary & */
|
488
|
+
PM_TOKEN_UAMPERSAND,
|
489
|
+
|
490
|
+
/** unary :: */
|
491
|
+
PM_TOKEN_UCOLON_COLON,
|
492
|
+
|
493
|
+
/** unary .. operator */
|
494
|
+
PM_TOKEN_UDOT_DOT,
|
495
|
+
|
496
|
+
/** unary ... operator */
|
497
|
+
PM_TOKEN_UDOT_DOT_DOT,
|
498
|
+
|
499
|
+
/** -@ */
|
500
|
+
PM_TOKEN_UMINUS,
|
501
|
+
|
502
|
+
/** -@ for a number */
|
503
|
+
PM_TOKEN_UMINUS_NUM,
|
504
|
+
|
505
|
+
/** +@ */
|
506
|
+
PM_TOKEN_UPLUS,
|
507
|
+
|
508
|
+
/** unary * */
|
509
|
+
PM_TOKEN_USTAR,
|
510
|
+
|
511
|
+
/** unary ** */
|
512
|
+
PM_TOKEN_USTAR_STAR,
|
513
|
+
|
514
|
+
/** a separator between words in a list */
|
515
|
+
PM_TOKEN_WORDS_SEP,
|
516
|
+
|
517
|
+
/** marker for the point in the file at which the parser should stop */
|
518
|
+
PM_TOKEN___END__,
|
519
|
+
|
520
|
+
/** The maximum token value. */
|
521
|
+
PM_TOKEN_MAXIMUM,
|
522
|
+
} pm_token_type_t;
|
523
|
+
|
524
|
+
/**
|
525
|
+
* This struct represents a token in the Ruby source. We use it to track both
|
526
|
+
* type and location information.
|
527
|
+
*/
|
528
|
+
typedef struct {
|
529
|
+
/** The type of the token. */
|
530
|
+
pm_token_type_t type;
|
531
|
+
|
532
|
+
/** A pointer to the start location of the token in the source. */
|
533
|
+
const uint8_t *start;
|
534
|
+
|
535
|
+
/** A pointer to the end location of the token in the source. */
|
536
|
+
const uint8_t *end;
|
537
|
+
} pm_token_t;
|
538
|
+
|
539
|
+
/**
|
540
|
+
* This represents a range of bytes in the source string to which a node or
|
541
|
+
* token corresponds.
|
542
|
+
*/
|
543
|
+
typedef struct {
|
544
|
+
/** A pointer to the start location of the range in the source. */
|
545
|
+
const uint8_t *start;
|
546
|
+
|
547
|
+
/** A pointer to the end location of the range in the source. */
|
548
|
+
const uint8_t *end;
|
549
|
+
} pm_location_t;
|
550
|
+
|
551
|
+
struct pm_node;
|
552
|
+
|
553
|
+
/**
|
554
|
+
* A list of nodes in the source, most often used for lists of children.
|
555
|
+
*/
|
556
|
+
typedef struct pm_node_list {
|
557
|
+
/** The number of nodes in the list. */
|
558
|
+
size_t size;
|
559
|
+
|
560
|
+
/** The capacity of the list that has been allocated. */
|
561
|
+
size_t capacity;
|
562
|
+
|
563
|
+
/** The nodes in the list. */
|
564
|
+
struct pm_node **nodes;
|
565
|
+
} pm_node_list_t;
|
566
|
+
|
567
|
+
/**
|
568
|
+
* This enum represents every type of node in the Ruby syntax tree.
|
569
|
+
*/
|
570
|
+
enum pm_node_type {
|
571
|
+
/** AliasGlobalVariableNode */
|
572
|
+
PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
|
573
|
+
|
574
|
+
/** AliasMethodNode */
|
575
|
+
PM_ALIAS_METHOD_NODE = 2,
|
576
|
+
|
577
|
+
/** AlternationPatternNode */
|
578
|
+
PM_ALTERNATION_PATTERN_NODE = 3,
|
579
|
+
|
580
|
+
/** AndNode */
|
581
|
+
PM_AND_NODE = 4,
|
582
|
+
|
583
|
+
/** ArgumentsNode */
|
584
|
+
PM_ARGUMENTS_NODE = 5,
|
585
|
+
|
586
|
+
/** ArrayNode */
|
587
|
+
PM_ARRAY_NODE = 6,
|
588
|
+
|
589
|
+
/** ArrayPatternNode */
|
590
|
+
PM_ARRAY_PATTERN_NODE = 7,
|
591
|
+
|
592
|
+
/** AssocNode */
|
593
|
+
PM_ASSOC_NODE = 8,
|
594
|
+
|
595
|
+
/** AssocSplatNode */
|
596
|
+
PM_ASSOC_SPLAT_NODE = 9,
|
597
|
+
|
598
|
+
/** BackReferenceReadNode */
|
599
|
+
PM_BACK_REFERENCE_READ_NODE = 10,
|
600
|
+
|
601
|
+
/** BeginNode */
|
602
|
+
PM_BEGIN_NODE = 11,
|
603
|
+
|
604
|
+
/** BlockArgumentNode */
|
605
|
+
PM_BLOCK_ARGUMENT_NODE = 12,
|
606
|
+
|
607
|
+
/** BlockLocalVariableNode */
|
608
|
+
PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
|
609
|
+
|
610
|
+
/** BlockNode */
|
611
|
+
PM_BLOCK_NODE = 14,
|
612
|
+
|
613
|
+
/** BlockParameterNode */
|
614
|
+
PM_BLOCK_PARAMETER_NODE = 15,
|
615
|
+
|
616
|
+
/** BlockParametersNode */
|
617
|
+
PM_BLOCK_PARAMETERS_NODE = 16,
|
618
|
+
|
619
|
+
/** BreakNode */
|
620
|
+
PM_BREAK_NODE = 17,
|
621
|
+
|
622
|
+
/** CallAndWriteNode */
|
623
|
+
PM_CALL_AND_WRITE_NODE = 18,
|
624
|
+
|
625
|
+
/** CallNode */
|
626
|
+
PM_CALL_NODE = 19,
|
627
|
+
|
628
|
+
/** CallOperatorWriteNode */
|
629
|
+
PM_CALL_OPERATOR_WRITE_NODE = 20,
|
630
|
+
|
631
|
+
/** CallOrWriteNode */
|
632
|
+
PM_CALL_OR_WRITE_NODE = 21,
|
633
|
+
|
634
|
+
/** CallTargetNode */
|
635
|
+
PM_CALL_TARGET_NODE = 22,
|
636
|
+
|
637
|
+
/** CapturePatternNode */
|
638
|
+
PM_CAPTURE_PATTERN_NODE = 23,
|
639
|
+
|
640
|
+
/** CaseMatchNode */
|
641
|
+
PM_CASE_MATCH_NODE = 24,
|
642
|
+
|
643
|
+
/** CaseNode */
|
644
|
+
PM_CASE_NODE = 25,
|
645
|
+
|
646
|
+
/** ClassNode */
|
647
|
+
PM_CLASS_NODE = 26,
|
648
|
+
|
649
|
+
/** ClassVariableAndWriteNode */
|
650
|
+
PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
|
651
|
+
|
652
|
+
/** ClassVariableOperatorWriteNode */
|
653
|
+
PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
|
654
|
+
|
655
|
+
/** ClassVariableOrWriteNode */
|
656
|
+
PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
|
657
|
+
|
658
|
+
/** ClassVariableReadNode */
|
659
|
+
PM_CLASS_VARIABLE_READ_NODE = 30,
|
660
|
+
|
661
|
+
/** ClassVariableTargetNode */
|
662
|
+
PM_CLASS_VARIABLE_TARGET_NODE = 31,
|
663
|
+
|
664
|
+
/** ClassVariableWriteNode */
|
665
|
+
PM_CLASS_VARIABLE_WRITE_NODE = 32,
|
666
|
+
|
667
|
+
/** ConstantAndWriteNode */
|
668
|
+
PM_CONSTANT_AND_WRITE_NODE = 33,
|
669
|
+
|
670
|
+
/** ConstantOperatorWriteNode */
|
671
|
+
PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
|
672
|
+
|
673
|
+
/** ConstantOrWriteNode */
|
674
|
+
PM_CONSTANT_OR_WRITE_NODE = 35,
|
675
|
+
|
676
|
+
/** ConstantPathAndWriteNode */
|
677
|
+
PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
|
678
|
+
|
679
|
+
/** ConstantPathNode */
|
680
|
+
PM_CONSTANT_PATH_NODE = 37,
|
681
|
+
|
682
|
+
/** ConstantPathOperatorWriteNode */
|
683
|
+
PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
|
684
|
+
|
685
|
+
/** ConstantPathOrWriteNode */
|
686
|
+
PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
|
687
|
+
|
688
|
+
/** ConstantPathTargetNode */
|
689
|
+
PM_CONSTANT_PATH_TARGET_NODE = 40,
|
690
|
+
|
691
|
+
/** ConstantPathWriteNode */
|
692
|
+
PM_CONSTANT_PATH_WRITE_NODE = 41,
|
693
|
+
|
694
|
+
/** ConstantReadNode */
|
695
|
+
PM_CONSTANT_READ_NODE = 42,
|
696
|
+
|
697
|
+
/** ConstantTargetNode */
|
698
|
+
PM_CONSTANT_TARGET_NODE = 43,
|
699
|
+
|
700
|
+
/** ConstantWriteNode */
|
701
|
+
PM_CONSTANT_WRITE_NODE = 44,
|
702
|
+
|
703
|
+
/** DefNode */
|
704
|
+
PM_DEF_NODE = 45,
|
705
|
+
|
706
|
+
/** DefinedNode */
|
707
|
+
PM_DEFINED_NODE = 46,
|
708
|
+
|
709
|
+
/** ElseNode */
|
710
|
+
PM_ELSE_NODE = 47,
|
711
|
+
|
712
|
+
/** EmbeddedStatementsNode */
|
713
|
+
PM_EMBEDDED_STATEMENTS_NODE = 48,
|
714
|
+
|
715
|
+
/** EmbeddedVariableNode */
|
716
|
+
PM_EMBEDDED_VARIABLE_NODE = 49,
|
717
|
+
|
718
|
+
/** EnsureNode */
|
719
|
+
PM_ENSURE_NODE = 50,
|
720
|
+
|
721
|
+
/** FalseNode */
|
722
|
+
PM_FALSE_NODE = 51,
|
723
|
+
|
724
|
+
/** FindPatternNode */
|
725
|
+
PM_FIND_PATTERN_NODE = 52,
|
726
|
+
|
727
|
+
/** FlipFlopNode */
|
728
|
+
PM_FLIP_FLOP_NODE = 53,
|
729
|
+
|
730
|
+
/** FloatNode */
|
731
|
+
PM_FLOAT_NODE = 54,
|
732
|
+
|
733
|
+
/** ForNode */
|
734
|
+
PM_FOR_NODE = 55,
|
735
|
+
|
736
|
+
/** ForwardingArgumentsNode */
|
737
|
+
PM_FORWARDING_ARGUMENTS_NODE = 56,
|
738
|
+
|
739
|
+
/** ForwardingParameterNode */
|
740
|
+
PM_FORWARDING_PARAMETER_NODE = 57,
|
741
|
+
|
742
|
+
/** ForwardingSuperNode */
|
743
|
+
PM_FORWARDING_SUPER_NODE = 58,
|
744
|
+
|
745
|
+
/** GlobalVariableAndWriteNode */
|
746
|
+
PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 59,
|
747
|
+
|
748
|
+
/** GlobalVariableOperatorWriteNode */
|
749
|
+
PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 60,
|
750
|
+
|
751
|
+
/** GlobalVariableOrWriteNode */
|
752
|
+
PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 61,
|
753
|
+
|
754
|
+
/** GlobalVariableReadNode */
|
755
|
+
PM_GLOBAL_VARIABLE_READ_NODE = 62,
|
756
|
+
|
757
|
+
/** GlobalVariableTargetNode */
|
758
|
+
PM_GLOBAL_VARIABLE_TARGET_NODE = 63,
|
759
|
+
|
760
|
+
/** GlobalVariableWriteNode */
|
761
|
+
PM_GLOBAL_VARIABLE_WRITE_NODE = 64,
|
762
|
+
|
763
|
+
/** HashNode */
|
764
|
+
PM_HASH_NODE = 65,
|
765
|
+
|
766
|
+
/** HashPatternNode */
|
767
|
+
PM_HASH_PATTERN_NODE = 66,
|
768
|
+
|
769
|
+
/** IfNode */
|
770
|
+
PM_IF_NODE = 67,
|
771
|
+
|
772
|
+
/** ImaginaryNode */
|
773
|
+
PM_IMAGINARY_NODE = 68,
|
774
|
+
|
775
|
+
/** ImplicitNode */
|
776
|
+
PM_IMPLICIT_NODE = 69,
|
777
|
+
|
778
|
+
/** ImplicitRestNode */
|
779
|
+
PM_IMPLICIT_REST_NODE = 70,
|
780
|
+
|
781
|
+
/** InNode */
|
782
|
+
PM_IN_NODE = 71,
|
783
|
+
|
784
|
+
/** IndexAndWriteNode */
|
785
|
+
PM_INDEX_AND_WRITE_NODE = 72,
|
786
|
+
|
787
|
+
/** IndexOperatorWriteNode */
|
788
|
+
PM_INDEX_OPERATOR_WRITE_NODE = 73,
|
789
|
+
|
790
|
+
/** IndexOrWriteNode */
|
791
|
+
PM_INDEX_OR_WRITE_NODE = 74,
|
792
|
+
|
793
|
+
/** IndexTargetNode */
|
794
|
+
PM_INDEX_TARGET_NODE = 75,
|
795
|
+
|
796
|
+
/** InstanceVariableAndWriteNode */
|
797
|
+
PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 76,
|
798
|
+
|
799
|
+
/** InstanceVariableOperatorWriteNode */
|
800
|
+
PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 77,
|
801
|
+
|
802
|
+
/** InstanceVariableOrWriteNode */
|
803
|
+
PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 78,
|
804
|
+
|
805
|
+
/** InstanceVariableReadNode */
|
806
|
+
PM_INSTANCE_VARIABLE_READ_NODE = 79,
|
807
|
+
|
808
|
+
/** InstanceVariableTargetNode */
|
809
|
+
PM_INSTANCE_VARIABLE_TARGET_NODE = 80,
|
810
|
+
|
811
|
+
/** InstanceVariableWriteNode */
|
812
|
+
PM_INSTANCE_VARIABLE_WRITE_NODE = 81,
|
813
|
+
|
814
|
+
/** IntegerNode */
|
815
|
+
PM_INTEGER_NODE = 82,
|
816
|
+
|
817
|
+
/** InterpolatedMatchLastLineNode */
|
818
|
+
PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 83,
|
819
|
+
|
820
|
+
/** InterpolatedRegularExpressionNode */
|
821
|
+
PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 84,
|
822
|
+
|
823
|
+
/** InterpolatedStringNode */
|
824
|
+
PM_INTERPOLATED_STRING_NODE = 85,
|
825
|
+
|
826
|
+
/** InterpolatedSymbolNode */
|
827
|
+
PM_INTERPOLATED_SYMBOL_NODE = 86,
|
828
|
+
|
829
|
+
/** InterpolatedXStringNode */
|
830
|
+
PM_INTERPOLATED_X_STRING_NODE = 87,
|
831
|
+
|
832
|
+
/** KeywordHashNode */
|
833
|
+
PM_KEYWORD_HASH_NODE = 88,
|
834
|
+
|
835
|
+
/** KeywordRestParameterNode */
|
836
|
+
PM_KEYWORD_REST_PARAMETER_NODE = 89,
|
837
|
+
|
838
|
+
/** LambdaNode */
|
839
|
+
PM_LAMBDA_NODE = 90,
|
840
|
+
|
841
|
+
/** LocalVariableAndWriteNode */
|
842
|
+
PM_LOCAL_VARIABLE_AND_WRITE_NODE = 91,
|
843
|
+
|
844
|
+
/** LocalVariableOperatorWriteNode */
|
845
|
+
PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 92,
|
846
|
+
|
847
|
+
/** LocalVariableOrWriteNode */
|
848
|
+
PM_LOCAL_VARIABLE_OR_WRITE_NODE = 93,
|
849
|
+
|
850
|
+
/** LocalVariableReadNode */
|
851
|
+
PM_LOCAL_VARIABLE_READ_NODE = 94,
|
852
|
+
|
853
|
+
/** LocalVariableTargetNode */
|
854
|
+
PM_LOCAL_VARIABLE_TARGET_NODE = 95,
|
855
|
+
|
856
|
+
/** LocalVariableWriteNode */
|
857
|
+
PM_LOCAL_VARIABLE_WRITE_NODE = 96,
|
858
|
+
|
859
|
+
/** MatchLastLineNode */
|
860
|
+
PM_MATCH_LAST_LINE_NODE = 97,
|
861
|
+
|
862
|
+
/** MatchPredicateNode */
|
863
|
+
PM_MATCH_PREDICATE_NODE = 98,
|
864
|
+
|
865
|
+
/** MatchRequiredNode */
|
866
|
+
PM_MATCH_REQUIRED_NODE = 99,
|
867
|
+
|
868
|
+
/** MatchWriteNode */
|
869
|
+
PM_MATCH_WRITE_NODE = 100,
|
870
|
+
|
871
|
+
/** MissingNode */
|
872
|
+
PM_MISSING_NODE = 101,
|
873
|
+
|
874
|
+
/** ModuleNode */
|
875
|
+
PM_MODULE_NODE = 102,
|
876
|
+
|
877
|
+
/** MultiTargetNode */
|
878
|
+
PM_MULTI_TARGET_NODE = 103,
|
879
|
+
|
880
|
+
/** MultiWriteNode */
|
881
|
+
PM_MULTI_WRITE_NODE = 104,
|
882
|
+
|
883
|
+
/** NextNode */
|
884
|
+
PM_NEXT_NODE = 105,
|
885
|
+
|
886
|
+
/** NilNode */
|
887
|
+
PM_NIL_NODE = 106,
|
888
|
+
|
889
|
+
/** NoKeywordsParameterNode */
|
890
|
+
PM_NO_KEYWORDS_PARAMETER_NODE = 107,
|
891
|
+
|
892
|
+
/** NumberedParametersNode */
|
893
|
+
PM_NUMBERED_PARAMETERS_NODE = 108,
|
894
|
+
|
895
|
+
/** NumberedReferenceReadNode */
|
896
|
+
PM_NUMBERED_REFERENCE_READ_NODE = 109,
|
897
|
+
|
898
|
+
/** OptionalKeywordParameterNode */
|
899
|
+
PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 110,
|
900
|
+
|
901
|
+
/** OptionalParameterNode */
|
902
|
+
PM_OPTIONAL_PARAMETER_NODE = 111,
|
903
|
+
|
904
|
+
/** OrNode */
|
905
|
+
PM_OR_NODE = 112,
|
906
|
+
|
907
|
+
/** ParametersNode */
|
908
|
+
PM_PARAMETERS_NODE = 113,
|
909
|
+
|
910
|
+
/** ParenthesesNode */
|
911
|
+
PM_PARENTHESES_NODE = 114,
|
912
|
+
|
913
|
+
/** PinnedExpressionNode */
|
914
|
+
PM_PINNED_EXPRESSION_NODE = 115,
|
915
|
+
|
916
|
+
/** PinnedVariableNode */
|
917
|
+
PM_PINNED_VARIABLE_NODE = 116,
|
918
|
+
|
919
|
+
/** PostExecutionNode */
|
920
|
+
PM_POST_EXECUTION_NODE = 117,
|
921
|
+
|
922
|
+
/** PreExecutionNode */
|
923
|
+
PM_PRE_EXECUTION_NODE = 118,
|
924
|
+
|
925
|
+
/** ProgramNode */
|
926
|
+
PM_PROGRAM_NODE = 119,
|
927
|
+
|
928
|
+
/** RangeNode */
|
929
|
+
PM_RANGE_NODE = 120,
|
930
|
+
|
931
|
+
/** RationalNode */
|
932
|
+
PM_RATIONAL_NODE = 121,
|
933
|
+
|
934
|
+
/** RedoNode */
|
935
|
+
PM_REDO_NODE = 122,
|
936
|
+
|
937
|
+
/** RegularExpressionNode */
|
938
|
+
PM_REGULAR_EXPRESSION_NODE = 123,
|
939
|
+
|
940
|
+
/** RequiredKeywordParameterNode */
|
941
|
+
PM_REQUIRED_KEYWORD_PARAMETER_NODE = 124,
|
942
|
+
|
943
|
+
/** RequiredParameterNode */
|
944
|
+
PM_REQUIRED_PARAMETER_NODE = 125,
|
945
|
+
|
946
|
+
/** RescueModifierNode */
|
947
|
+
PM_RESCUE_MODIFIER_NODE = 126,
|
948
|
+
|
949
|
+
/** RescueNode */
|
950
|
+
PM_RESCUE_NODE = 127,
|
951
|
+
|
952
|
+
/** RestParameterNode */
|
953
|
+
PM_REST_PARAMETER_NODE = 128,
|
954
|
+
|
955
|
+
/** RetryNode */
|
956
|
+
PM_RETRY_NODE = 129,
|
957
|
+
|
958
|
+
/** ReturnNode */
|
959
|
+
PM_RETURN_NODE = 130,
|
960
|
+
|
961
|
+
/** SelfNode */
|
962
|
+
PM_SELF_NODE = 131,
|
963
|
+
|
964
|
+
/** SingletonClassNode */
|
965
|
+
PM_SINGLETON_CLASS_NODE = 132,
|
966
|
+
|
967
|
+
/** SourceEncodingNode */
|
968
|
+
PM_SOURCE_ENCODING_NODE = 133,
|
969
|
+
|
970
|
+
/** SourceFileNode */
|
971
|
+
PM_SOURCE_FILE_NODE = 134,
|
972
|
+
|
973
|
+
/** SourceLineNode */
|
974
|
+
PM_SOURCE_LINE_NODE = 135,
|
975
|
+
|
976
|
+
/** SplatNode */
|
977
|
+
PM_SPLAT_NODE = 136,
|
978
|
+
|
979
|
+
/** StatementsNode */
|
980
|
+
PM_STATEMENTS_NODE = 137,
|
981
|
+
|
982
|
+
/** StringNode */
|
983
|
+
PM_STRING_NODE = 138,
|
984
|
+
|
985
|
+
/** SuperNode */
|
986
|
+
PM_SUPER_NODE = 139,
|
987
|
+
|
988
|
+
/** SymbolNode */
|
989
|
+
PM_SYMBOL_NODE = 140,
|
990
|
+
|
991
|
+
/** TrueNode */
|
992
|
+
PM_TRUE_NODE = 141,
|
993
|
+
|
994
|
+
/** UndefNode */
|
995
|
+
PM_UNDEF_NODE = 142,
|
996
|
+
|
997
|
+
/** UnlessNode */
|
998
|
+
PM_UNLESS_NODE = 143,
|
999
|
+
|
1000
|
+
/** UntilNode */
|
1001
|
+
PM_UNTIL_NODE = 144,
|
1002
|
+
|
1003
|
+
/** WhenNode */
|
1004
|
+
PM_WHEN_NODE = 145,
|
1005
|
+
|
1006
|
+
/** WhileNode */
|
1007
|
+
PM_WHILE_NODE = 146,
|
1008
|
+
|
1009
|
+
/** XStringNode */
|
1010
|
+
PM_X_STRING_NODE = 147,
|
1011
|
+
|
1012
|
+
/** YieldNode */
|
1013
|
+
PM_YIELD_NODE = 148,
|
1014
|
+
|
1015
|
+
/** A special kind of node used for compilation. */
|
1016
|
+
PM_SCOPE_NODE
|
1017
|
+
};
|
1018
|
+
|
1019
|
+
/**
|
1020
|
+
* This is the type of node embedded in the node struct. We explicitly control
|
1021
|
+
* the size of it here to avoid having the variable-width enum.
|
1022
|
+
*/
|
1023
|
+
typedef uint16_t pm_node_type_t;
|
1024
|
+
|
1025
|
+
/**
|
1026
|
+
* These are the flags embedded in the node struct. We explicitly control the
|
1027
|
+
* size of it here to avoid having the variable-width enum.
|
1028
|
+
*/
|
1029
|
+
typedef uint16_t pm_node_flags_t;
|
1030
|
+
|
1031
|
+
/**
|
1032
|
+
* We store the flags enum in every node in the tree. Some flags are common to
|
1033
|
+
* all nodes (the ones listed below). Others are specific to certain node types.
|
1034
|
+
*/
|
1035
|
+
#define PM_NODE_FLAG_BITS (sizeof(pm_node_flags_t) * 8)
|
1036
|
+
|
1037
|
+
static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = (1 << (PM_NODE_FLAG_BITS - 1));
|
1038
|
+
static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = (1 << (PM_NODE_FLAG_BITS - 2));
|
1039
|
+
static const pm_node_flags_t PM_NODE_FLAG_COMMON_MASK = (1 << (PM_NODE_FLAG_BITS - 1)) | (1 << (PM_NODE_FLAG_BITS - 2));
|
1040
|
+
|
1041
|
+
/**
|
1042
|
+
* Cast the type to an enum to allow the compiler to provide exhaustiveness
|
1043
|
+
* checking.
|
1044
|
+
*/
|
1045
|
+
#define PM_NODE_TYPE(node) ((enum pm_node_type) node->type)
|
1046
|
+
|
1047
|
+
/**
|
1048
|
+
* Return true if the type of the given node matches the given type.
|
1049
|
+
*/
|
1050
|
+
#define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
|
1051
|
+
|
1052
|
+
/**
|
1053
|
+
* Return true if the given flag is set on the given node.
|
1054
|
+
*/
|
1055
|
+
#define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
|
1056
|
+
|
1057
|
+
/**
|
1058
|
+
* This is the base structure that represents a node in the syntax tree. It is
|
1059
|
+
* embedded into every node type.
|
1060
|
+
*/
|
1061
|
+
typedef struct pm_node {
|
1062
|
+
/**
|
1063
|
+
* This represents the type of the node. It somewhat maps to the nodes that
|
1064
|
+
* existed in the original grammar and ripper, but it's not a 1:1 mapping.
|
1065
|
+
*/
|
1066
|
+
pm_node_type_t type;
|
1067
|
+
|
1068
|
+
/**
|
1069
|
+
* This represents any flags on the node. Some are common to all nodes, and
|
1070
|
+
* some are specific to the type of node.
|
1071
|
+
*/
|
1072
|
+
pm_node_flags_t flags;
|
1073
|
+
|
1074
|
+
/**
|
1075
|
+
* This is the location of the node in the source. It's a range of bytes
|
1076
|
+
* containing a start and an end.
|
1077
|
+
*/
|
1078
|
+
pm_location_t location;
|
1079
|
+
} pm_node_t;
|
1080
|
+
|
1081
|
+
/**
|
1082
|
+
* AliasGlobalVariableNode
|
1083
|
+
*
|
1084
|
+
* Type: PM_ALIAS_GLOBAL_VARIABLE_NODE
|
1085
|
+
*
|
1086
|
+
* @extends pm_node_t
|
1087
|
+
*/
|
1088
|
+
typedef struct pm_alias_global_variable_node {
|
1089
|
+
/** The embedded base node. */
|
1090
|
+
pm_node_t base;
|
1091
|
+
|
1092
|
+
/** AliasGlobalVariableNode#new_name */
|
1093
|
+
struct pm_node *new_name;
|
1094
|
+
|
1095
|
+
/** AliasGlobalVariableNode#old_name */
|
1096
|
+
struct pm_node *old_name;
|
1097
|
+
|
1098
|
+
/** AliasGlobalVariableNode#keyword_loc */
|
1099
|
+
pm_location_t keyword_loc;
|
1100
|
+
} pm_alias_global_variable_node_t;
|
1101
|
+
|
1102
|
+
/**
|
1103
|
+
* AliasMethodNode
|
1104
|
+
*
|
1105
|
+
* Type: PM_ALIAS_METHOD_NODE
|
1106
|
+
*
|
1107
|
+
* @extends pm_node_t
|
1108
|
+
*/
|
1109
|
+
typedef struct pm_alias_method_node {
|
1110
|
+
/** The embedded base node. */
|
1111
|
+
pm_node_t base;
|
1112
|
+
|
1113
|
+
/** AliasMethodNode#new_name */
|
1114
|
+
struct pm_node *new_name;
|
1115
|
+
|
1116
|
+
/** AliasMethodNode#old_name */
|
1117
|
+
struct pm_node *old_name;
|
1118
|
+
|
1119
|
+
/** AliasMethodNode#keyword_loc */
|
1120
|
+
pm_location_t keyword_loc;
|
1121
|
+
} pm_alias_method_node_t;
|
1122
|
+
|
1123
|
+
/**
|
1124
|
+
* AlternationPatternNode
|
1125
|
+
*
|
1126
|
+
* Type: PM_ALTERNATION_PATTERN_NODE
|
1127
|
+
*
|
1128
|
+
* @extends pm_node_t
|
1129
|
+
*/
|
1130
|
+
typedef struct pm_alternation_pattern_node {
|
1131
|
+
/** The embedded base node. */
|
1132
|
+
pm_node_t base;
|
1133
|
+
|
1134
|
+
/** AlternationPatternNode#left */
|
1135
|
+
struct pm_node *left;
|
1136
|
+
|
1137
|
+
/** AlternationPatternNode#right */
|
1138
|
+
struct pm_node *right;
|
1139
|
+
|
1140
|
+
/** AlternationPatternNode#operator_loc */
|
1141
|
+
pm_location_t operator_loc;
|
1142
|
+
} pm_alternation_pattern_node_t;
|
1143
|
+
|
1144
|
+
/**
|
1145
|
+
* AndNode
|
1146
|
+
*
|
1147
|
+
* Type: PM_AND_NODE
|
1148
|
+
*
|
1149
|
+
* @extends pm_node_t
|
1150
|
+
*/
|
1151
|
+
typedef struct pm_and_node {
|
1152
|
+
/** The embedded base node. */
|
1153
|
+
pm_node_t base;
|
1154
|
+
|
1155
|
+
/** AndNode#left */
|
1156
|
+
struct pm_node *left;
|
1157
|
+
|
1158
|
+
/** AndNode#right */
|
1159
|
+
struct pm_node *right;
|
1160
|
+
|
1161
|
+
/** AndNode#operator_loc */
|
1162
|
+
pm_location_t operator_loc;
|
1163
|
+
} pm_and_node_t;
|
1164
|
+
|
1165
|
+
/**
|
1166
|
+
* ArgumentsNode
|
1167
|
+
*
|
1168
|
+
* Type: PM_ARGUMENTS_NODE
|
1169
|
+
* Flags:
|
1170
|
+
* PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
|
1171
|
+
*
|
1172
|
+
* @extends pm_node_t
|
1173
|
+
*/
|
1174
|
+
typedef struct pm_arguments_node {
|
1175
|
+
/** The embedded base node. */
|
1176
|
+
pm_node_t base;
|
1177
|
+
|
1178
|
+
/** ArgumentsNode#arguments */
|
1179
|
+
struct pm_node_list arguments;
|
1180
|
+
} pm_arguments_node_t;
|
1181
|
+
|
1182
|
+
/**
|
1183
|
+
* ArrayNode
|
1184
|
+
*
|
1185
|
+
* Type: PM_ARRAY_NODE
|
1186
|
+
* Flags:
|
1187
|
+
* PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
|
1188
|
+
*
|
1189
|
+
* @extends pm_node_t
|
1190
|
+
*/
|
1191
|
+
typedef struct pm_array_node {
|
1192
|
+
/** The embedded base node. */
|
1193
|
+
pm_node_t base;
|
1194
|
+
|
1195
|
+
/** ArrayNode#elements */
|
1196
|
+
struct pm_node_list elements;
|
1197
|
+
|
1198
|
+
/** ArrayNode#opening_loc */
|
1199
|
+
pm_location_t opening_loc;
|
1200
|
+
|
1201
|
+
/** ArrayNode#closing_loc */
|
1202
|
+
pm_location_t closing_loc;
|
1203
|
+
} pm_array_node_t;
|
1204
|
+
|
1205
|
+
/**
|
1206
|
+
* ArrayPatternNode
|
1207
|
+
*
|
1208
|
+
* Type: PM_ARRAY_PATTERN_NODE
|
1209
|
+
*
|
1210
|
+
* @extends pm_node_t
|
1211
|
+
*/
|
1212
|
+
typedef struct pm_array_pattern_node {
|
1213
|
+
/** The embedded base node. */
|
1214
|
+
pm_node_t base;
|
1215
|
+
|
1216
|
+
/** ArrayPatternNode#constant */
|
1217
|
+
struct pm_node *constant;
|
1218
|
+
|
1219
|
+
/** ArrayPatternNode#requireds */
|
1220
|
+
struct pm_node_list requireds;
|
1221
|
+
|
1222
|
+
/** ArrayPatternNode#rest */
|
1223
|
+
struct pm_node *rest;
|
1224
|
+
|
1225
|
+
/** ArrayPatternNode#posts */
|
1226
|
+
struct pm_node_list posts;
|
1227
|
+
|
1228
|
+
/** ArrayPatternNode#opening_loc */
|
1229
|
+
pm_location_t opening_loc;
|
1230
|
+
|
1231
|
+
/** ArrayPatternNode#closing_loc */
|
1232
|
+
pm_location_t closing_loc;
|
1233
|
+
} pm_array_pattern_node_t;
|
1234
|
+
|
1235
|
+
/**
|
1236
|
+
* AssocNode
|
1237
|
+
*
|
1238
|
+
* Type: PM_ASSOC_NODE
|
1239
|
+
*
|
1240
|
+
* @extends pm_node_t
|
1241
|
+
*/
|
1242
|
+
typedef struct pm_assoc_node {
|
1243
|
+
/** The embedded base node. */
|
1244
|
+
pm_node_t base;
|
1245
|
+
|
1246
|
+
/** AssocNode#key */
|
1247
|
+
struct pm_node *key;
|
1248
|
+
|
1249
|
+
/** AssocNode#value */
|
1250
|
+
struct pm_node *value;
|
1251
|
+
|
1252
|
+
/** AssocNode#operator_loc */
|
1253
|
+
pm_location_t operator_loc;
|
1254
|
+
} pm_assoc_node_t;
|
1255
|
+
|
1256
|
+
/**
|
1257
|
+
* AssocSplatNode
|
1258
|
+
*
|
1259
|
+
* Type: PM_ASSOC_SPLAT_NODE
|
1260
|
+
*
|
1261
|
+
* @extends pm_node_t
|
1262
|
+
*/
|
1263
|
+
typedef struct pm_assoc_splat_node {
|
1264
|
+
/** The embedded base node. */
|
1265
|
+
pm_node_t base;
|
1266
|
+
|
1267
|
+
/** AssocSplatNode#value */
|
1268
|
+
struct pm_node *value;
|
1269
|
+
|
1270
|
+
/** AssocSplatNode#operator_loc */
|
1271
|
+
pm_location_t operator_loc;
|
1272
|
+
} pm_assoc_splat_node_t;
|
1273
|
+
|
1274
|
+
/**
|
1275
|
+
* BackReferenceReadNode
|
1276
|
+
*
|
1277
|
+
* Type: PM_BACK_REFERENCE_READ_NODE
|
1278
|
+
*
|
1279
|
+
* @extends pm_node_t
|
1280
|
+
*/
|
1281
|
+
typedef struct pm_back_reference_read_node {
|
1282
|
+
/** The embedded base node. */
|
1283
|
+
pm_node_t base;
|
1284
|
+
|
1285
|
+
/** BackReferenceReadNode#name */
|
1286
|
+
pm_constant_id_t name;
|
1287
|
+
} pm_back_reference_read_node_t;
|
1288
|
+
|
1289
|
+
/**
|
1290
|
+
* BeginNode
|
1291
|
+
*
|
1292
|
+
* Type: PM_BEGIN_NODE
|
1293
|
+
*
|
1294
|
+
* @extends pm_node_t
|
1295
|
+
*/
|
1296
|
+
typedef struct pm_begin_node {
|
1297
|
+
/** The embedded base node. */
|
1298
|
+
pm_node_t base;
|
1299
|
+
|
1300
|
+
/** BeginNode#begin_keyword_loc */
|
1301
|
+
pm_location_t begin_keyword_loc;
|
1302
|
+
|
1303
|
+
/** BeginNode#statements */
|
1304
|
+
struct pm_statements_node *statements;
|
1305
|
+
|
1306
|
+
/** BeginNode#rescue_clause */
|
1307
|
+
struct pm_rescue_node *rescue_clause;
|
1308
|
+
|
1309
|
+
/** BeginNode#else_clause */
|
1310
|
+
struct pm_else_node *else_clause;
|
1311
|
+
|
1312
|
+
/** BeginNode#ensure_clause */
|
1313
|
+
struct pm_ensure_node *ensure_clause;
|
1314
|
+
|
1315
|
+
/** BeginNode#end_keyword_loc */
|
1316
|
+
pm_location_t end_keyword_loc;
|
1317
|
+
} pm_begin_node_t;
|
1318
|
+
|
1319
|
+
/**
|
1320
|
+
* BlockArgumentNode
|
1321
|
+
*
|
1322
|
+
* Type: PM_BLOCK_ARGUMENT_NODE
|
1323
|
+
*
|
1324
|
+
* @extends pm_node_t
|
1325
|
+
*/
|
1326
|
+
typedef struct pm_block_argument_node {
|
1327
|
+
/** The embedded base node. */
|
1328
|
+
pm_node_t base;
|
1329
|
+
|
1330
|
+
/** BlockArgumentNode#expression */
|
1331
|
+
struct pm_node *expression;
|
1332
|
+
|
1333
|
+
/** BlockArgumentNode#operator_loc */
|
1334
|
+
pm_location_t operator_loc;
|
1335
|
+
} pm_block_argument_node_t;
|
1336
|
+
|
1337
|
+
/**
|
1338
|
+
* BlockLocalVariableNode
|
1339
|
+
*
|
1340
|
+
* Type: PM_BLOCK_LOCAL_VARIABLE_NODE
|
1341
|
+
*
|
1342
|
+
* @extends pm_node_t
|
1343
|
+
*/
|
1344
|
+
typedef struct pm_block_local_variable_node {
|
1345
|
+
/** The embedded base node. */
|
1346
|
+
pm_node_t base;
|
1347
|
+
|
1348
|
+
/** BlockLocalVariableNode#name */
|
1349
|
+
pm_constant_id_t name;
|
1350
|
+
} pm_block_local_variable_node_t;
|
1351
|
+
|
1352
|
+
/**
|
1353
|
+
* BlockNode
|
1354
|
+
*
|
1355
|
+
* Type: PM_BLOCK_NODE
|
1356
|
+
*
|
1357
|
+
* @extends pm_node_t
|
1358
|
+
*/
|
1359
|
+
typedef struct pm_block_node {
|
1360
|
+
/** The embedded base node. */
|
1361
|
+
pm_node_t base;
|
1362
|
+
|
1363
|
+
/** BlockNode#locals */
|
1364
|
+
pm_constant_id_list_t locals;
|
1365
|
+
|
1366
|
+
/** BlockNode#locals_body_index */
|
1367
|
+
uint32_t locals_body_index;
|
1368
|
+
|
1369
|
+
/** BlockNode#parameters */
|
1370
|
+
struct pm_node *parameters;
|
1371
|
+
|
1372
|
+
/** BlockNode#body */
|
1373
|
+
struct pm_node *body;
|
1374
|
+
|
1375
|
+
/** BlockNode#opening_loc */
|
1376
|
+
pm_location_t opening_loc;
|
1377
|
+
|
1378
|
+
/** BlockNode#closing_loc */
|
1379
|
+
pm_location_t closing_loc;
|
1380
|
+
} pm_block_node_t;
|
1381
|
+
|
1382
|
+
/**
|
1383
|
+
* BlockParameterNode
|
1384
|
+
*
|
1385
|
+
* Type: PM_BLOCK_PARAMETER_NODE
|
1386
|
+
*
|
1387
|
+
* @extends pm_node_t
|
1388
|
+
*/
|
1389
|
+
typedef struct pm_block_parameter_node {
|
1390
|
+
/** The embedded base node. */
|
1391
|
+
pm_node_t base;
|
1392
|
+
|
1393
|
+
/** BlockParameterNode#name */
|
1394
|
+
pm_constant_id_t name;
|
1395
|
+
|
1396
|
+
/** BlockParameterNode#name_loc */
|
1397
|
+
pm_location_t name_loc;
|
1398
|
+
|
1399
|
+
/** BlockParameterNode#operator_loc */
|
1400
|
+
pm_location_t operator_loc;
|
1401
|
+
} pm_block_parameter_node_t;
|
1402
|
+
|
1403
|
+
/**
|
1404
|
+
* BlockParametersNode
|
1405
|
+
*
|
1406
|
+
* Type: PM_BLOCK_PARAMETERS_NODE
|
1407
|
+
*
|
1408
|
+
* @extends pm_node_t
|
1409
|
+
*/
|
1410
|
+
typedef struct pm_block_parameters_node {
|
1411
|
+
/** The embedded base node. */
|
1412
|
+
pm_node_t base;
|
1413
|
+
|
1414
|
+
/** BlockParametersNode#parameters */
|
1415
|
+
struct pm_parameters_node *parameters;
|
1416
|
+
|
1417
|
+
/** BlockParametersNode#locals */
|
1418
|
+
struct pm_node_list locals;
|
1419
|
+
|
1420
|
+
/** BlockParametersNode#opening_loc */
|
1421
|
+
pm_location_t opening_loc;
|
1422
|
+
|
1423
|
+
/** BlockParametersNode#closing_loc */
|
1424
|
+
pm_location_t closing_loc;
|
1425
|
+
} pm_block_parameters_node_t;
|
1426
|
+
|
1427
|
+
/**
|
1428
|
+
* BreakNode
|
1429
|
+
*
|
1430
|
+
* Type: PM_BREAK_NODE
|
1431
|
+
*
|
1432
|
+
* @extends pm_node_t
|
1433
|
+
*/
|
1434
|
+
typedef struct pm_break_node {
|
1435
|
+
/** The embedded base node. */
|
1436
|
+
pm_node_t base;
|
1437
|
+
|
1438
|
+
/** BreakNode#arguments */
|
1439
|
+
struct pm_arguments_node *arguments;
|
1440
|
+
|
1441
|
+
/** BreakNode#keyword_loc */
|
1442
|
+
pm_location_t keyword_loc;
|
1443
|
+
} pm_break_node_t;
|
1444
|
+
|
1445
|
+
/**
|
1446
|
+
* CallAndWriteNode
|
1447
|
+
*
|
1448
|
+
* Type: PM_CALL_AND_WRITE_NODE
|
1449
|
+
* Flags:
|
1450
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1451
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1452
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1453
|
+
*
|
1454
|
+
* @extends pm_node_t
|
1455
|
+
*/
|
1456
|
+
typedef struct pm_call_and_write_node {
|
1457
|
+
/** The embedded base node. */
|
1458
|
+
pm_node_t base;
|
1459
|
+
|
1460
|
+
/** CallAndWriteNode#receiver */
|
1461
|
+
struct pm_node *receiver;
|
1462
|
+
|
1463
|
+
/** CallAndWriteNode#call_operator_loc */
|
1464
|
+
pm_location_t call_operator_loc;
|
1465
|
+
|
1466
|
+
/** CallAndWriteNode#message_loc */
|
1467
|
+
pm_location_t message_loc;
|
1468
|
+
|
1469
|
+
/** CallAndWriteNode#read_name */
|
1470
|
+
pm_constant_id_t read_name;
|
1471
|
+
|
1472
|
+
/** CallAndWriteNode#write_name */
|
1473
|
+
pm_constant_id_t write_name;
|
1474
|
+
|
1475
|
+
/** CallAndWriteNode#operator_loc */
|
1476
|
+
pm_location_t operator_loc;
|
1477
|
+
|
1478
|
+
/** CallAndWriteNode#value */
|
1479
|
+
struct pm_node *value;
|
1480
|
+
} pm_call_and_write_node_t;
|
1481
|
+
|
1482
|
+
/**
|
1483
|
+
* CallNode
|
1484
|
+
*
|
1485
|
+
* Type: PM_CALL_NODE
|
1486
|
+
* Flags:
|
1487
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1488
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1489
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1490
|
+
*
|
1491
|
+
* @extends pm_node_t
|
1492
|
+
*/
|
1493
|
+
typedef struct pm_call_node {
|
1494
|
+
/** The embedded base node. */
|
1495
|
+
pm_node_t base;
|
1496
|
+
|
1497
|
+
/** CallNode#receiver */
|
1498
|
+
struct pm_node *receiver;
|
1499
|
+
|
1500
|
+
/** CallNode#call_operator_loc */
|
1501
|
+
pm_location_t call_operator_loc;
|
1502
|
+
|
1503
|
+
/** CallNode#name */
|
1504
|
+
pm_constant_id_t name;
|
1505
|
+
|
1506
|
+
/** CallNode#message_loc */
|
1507
|
+
pm_location_t message_loc;
|
1508
|
+
|
1509
|
+
/** CallNode#opening_loc */
|
1510
|
+
pm_location_t opening_loc;
|
1511
|
+
|
1512
|
+
/** CallNode#arguments */
|
1513
|
+
struct pm_arguments_node *arguments;
|
1514
|
+
|
1515
|
+
/** CallNode#closing_loc */
|
1516
|
+
pm_location_t closing_loc;
|
1517
|
+
|
1518
|
+
/** CallNode#block */
|
1519
|
+
struct pm_node *block;
|
1520
|
+
} pm_call_node_t;
|
1521
|
+
|
1522
|
+
/**
|
1523
|
+
* CallOperatorWriteNode
|
1524
|
+
*
|
1525
|
+
* Type: PM_CALL_OPERATOR_WRITE_NODE
|
1526
|
+
* Flags:
|
1527
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1528
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1529
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1530
|
+
*
|
1531
|
+
* @extends pm_node_t
|
1532
|
+
*/
|
1533
|
+
typedef struct pm_call_operator_write_node {
|
1534
|
+
/** The embedded base node. */
|
1535
|
+
pm_node_t base;
|
1536
|
+
|
1537
|
+
/** CallOperatorWriteNode#receiver */
|
1538
|
+
struct pm_node *receiver;
|
1539
|
+
|
1540
|
+
/** CallOperatorWriteNode#call_operator_loc */
|
1541
|
+
pm_location_t call_operator_loc;
|
1542
|
+
|
1543
|
+
/** CallOperatorWriteNode#message_loc */
|
1544
|
+
pm_location_t message_loc;
|
1545
|
+
|
1546
|
+
/** CallOperatorWriteNode#read_name */
|
1547
|
+
pm_constant_id_t read_name;
|
1548
|
+
|
1549
|
+
/** CallOperatorWriteNode#write_name */
|
1550
|
+
pm_constant_id_t write_name;
|
1551
|
+
|
1552
|
+
/** CallOperatorWriteNode#operator */
|
1553
|
+
pm_constant_id_t operator;
|
1554
|
+
|
1555
|
+
/** CallOperatorWriteNode#operator_loc */
|
1556
|
+
pm_location_t operator_loc;
|
1557
|
+
|
1558
|
+
/** CallOperatorWriteNode#value */
|
1559
|
+
struct pm_node *value;
|
1560
|
+
} pm_call_operator_write_node_t;
|
1561
|
+
|
1562
|
+
/**
|
1563
|
+
* CallOrWriteNode
|
1564
|
+
*
|
1565
|
+
* Type: PM_CALL_OR_WRITE_NODE
|
1566
|
+
* Flags:
|
1567
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1568
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1569
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1570
|
+
*
|
1571
|
+
* @extends pm_node_t
|
1572
|
+
*/
|
1573
|
+
typedef struct pm_call_or_write_node {
|
1574
|
+
/** The embedded base node. */
|
1575
|
+
pm_node_t base;
|
1576
|
+
|
1577
|
+
/** CallOrWriteNode#receiver */
|
1578
|
+
struct pm_node *receiver;
|
1579
|
+
|
1580
|
+
/** CallOrWriteNode#call_operator_loc */
|
1581
|
+
pm_location_t call_operator_loc;
|
1582
|
+
|
1583
|
+
/** CallOrWriteNode#message_loc */
|
1584
|
+
pm_location_t message_loc;
|
1585
|
+
|
1586
|
+
/** CallOrWriteNode#read_name */
|
1587
|
+
pm_constant_id_t read_name;
|
1588
|
+
|
1589
|
+
/** CallOrWriteNode#write_name */
|
1590
|
+
pm_constant_id_t write_name;
|
1591
|
+
|
1592
|
+
/** CallOrWriteNode#operator_loc */
|
1593
|
+
pm_location_t operator_loc;
|
1594
|
+
|
1595
|
+
/** CallOrWriteNode#value */
|
1596
|
+
struct pm_node *value;
|
1597
|
+
} pm_call_or_write_node_t;
|
1598
|
+
|
1599
|
+
/**
|
1600
|
+
* CallTargetNode
|
1601
|
+
*
|
1602
|
+
* Type: PM_CALL_TARGET_NODE
|
1603
|
+
* Flags:
|
1604
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
1605
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
1606
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
1607
|
+
*
|
1608
|
+
* @extends pm_node_t
|
1609
|
+
*/
|
1610
|
+
typedef struct pm_call_target_node {
|
1611
|
+
/** The embedded base node. */
|
1612
|
+
pm_node_t base;
|
1613
|
+
|
1614
|
+
/** CallTargetNode#receiver */
|
1615
|
+
struct pm_node *receiver;
|
1616
|
+
|
1617
|
+
/** CallTargetNode#call_operator_loc */
|
1618
|
+
pm_location_t call_operator_loc;
|
1619
|
+
|
1620
|
+
/** CallTargetNode#name */
|
1621
|
+
pm_constant_id_t name;
|
1622
|
+
|
1623
|
+
/** CallTargetNode#message_loc */
|
1624
|
+
pm_location_t message_loc;
|
1625
|
+
} pm_call_target_node_t;
|
1626
|
+
|
1627
|
+
/**
|
1628
|
+
* CapturePatternNode
|
1629
|
+
*
|
1630
|
+
* Type: PM_CAPTURE_PATTERN_NODE
|
1631
|
+
*
|
1632
|
+
* @extends pm_node_t
|
1633
|
+
*/
|
1634
|
+
typedef struct pm_capture_pattern_node {
|
1635
|
+
/** The embedded base node. */
|
1636
|
+
pm_node_t base;
|
1637
|
+
|
1638
|
+
/** CapturePatternNode#value */
|
1639
|
+
struct pm_node *value;
|
1640
|
+
|
1641
|
+
/** CapturePatternNode#target */
|
1642
|
+
struct pm_node *target;
|
1643
|
+
|
1644
|
+
/** CapturePatternNode#operator_loc */
|
1645
|
+
pm_location_t operator_loc;
|
1646
|
+
} pm_capture_pattern_node_t;
|
1647
|
+
|
1648
|
+
/**
|
1649
|
+
* CaseMatchNode
|
1650
|
+
*
|
1651
|
+
* Type: PM_CASE_MATCH_NODE
|
1652
|
+
*
|
1653
|
+
* @extends pm_node_t
|
1654
|
+
*/
|
1655
|
+
typedef struct pm_case_match_node {
|
1656
|
+
/** The embedded base node. */
|
1657
|
+
pm_node_t base;
|
1658
|
+
|
1659
|
+
/** CaseMatchNode#predicate */
|
1660
|
+
struct pm_node *predicate;
|
1661
|
+
|
1662
|
+
/** CaseMatchNode#conditions */
|
1663
|
+
struct pm_node_list conditions;
|
1664
|
+
|
1665
|
+
/** CaseMatchNode#consequent */
|
1666
|
+
struct pm_else_node *consequent;
|
1667
|
+
|
1668
|
+
/** CaseMatchNode#case_keyword_loc */
|
1669
|
+
pm_location_t case_keyword_loc;
|
1670
|
+
|
1671
|
+
/** CaseMatchNode#end_keyword_loc */
|
1672
|
+
pm_location_t end_keyword_loc;
|
1673
|
+
} pm_case_match_node_t;
|
1674
|
+
|
1675
|
+
/**
|
1676
|
+
* CaseNode
|
1677
|
+
*
|
1678
|
+
* Type: PM_CASE_NODE
|
1679
|
+
*
|
1680
|
+
* @extends pm_node_t
|
1681
|
+
*/
|
1682
|
+
typedef struct pm_case_node {
|
1683
|
+
/** The embedded base node. */
|
1684
|
+
pm_node_t base;
|
1685
|
+
|
1686
|
+
/** CaseNode#predicate */
|
1687
|
+
struct pm_node *predicate;
|
1688
|
+
|
1689
|
+
/** CaseNode#conditions */
|
1690
|
+
struct pm_node_list conditions;
|
1691
|
+
|
1692
|
+
/** CaseNode#consequent */
|
1693
|
+
struct pm_else_node *consequent;
|
1694
|
+
|
1695
|
+
/** CaseNode#case_keyword_loc */
|
1696
|
+
pm_location_t case_keyword_loc;
|
1697
|
+
|
1698
|
+
/** CaseNode#end_keyword_loc */
|
1699
|
+
pm_location_t end_keyword_loc;
|
1700
|
+
} pm_case_node_t;
|
1701
|
+
|
1702
|
+
/**
|
1703
|
+
* ClassNode
|
1704
|
+
*
|
1705
|
+
* Type: PM_CLASS_NODE
|
1706
|
+
*
|
1707
|
+
* @extends pm_node_t
|
1708
|
+
*/
|
1709
|
+
typedef struct pm_class_node {
|
1710
|
+
/** The embedded base node. */
|
1711
|
+
pm_node_t base;
|
1712
|
+
|
1713
|
+
/** ClassNode#locals */
|
1714
|
+
pm_constant_id_list_t locals;
|
1715
|
+
|
1716
|
+
/** ClassNode#class_keyword_loc */
|
1717
|
+
pm_location_t class_keyword_loc;
|
1718
|
+
|
1719
|
+
/** ClassNode#constant_path */
|
1720
|
+
struct pm_node *constant_path;
|
1721
|
+
|
1722
|
+
/** ClassNode#inheritance_operator_loc */
|
1723
|
+
pm_location_t inheritance_operator_loc;
|
1724
|
+
|
1725
|
+
/** ClassNode#superclass */
|
1726
|
+
struct pm_node *superclass;
|
1727
|
+
|
1728
|
+
/** ClassNode#body */
|
1729
|
+
struct pm_node *body;
|
1730
|
+
|
1731
|
+
/** ClassNode#end_keyword_loc */
|
1732
|
+
pm_location_t end_keyword_loc;
|
1733
|
+
|
1734
|
+
/** ClassNode#name */
|
1735
|
+
pm_constant_id_t name;
|
1736
|
+
} pm_class_node_t;
|
1737
|
+
|
1738
|
+
/**
|
1739
|
+
* ClassVariableAndWriteNode
|
1740
|
+
*
|
1741
|
+
* Type: PM_CLASS_VARIABLE_AND_WRITE_NODE
|
1742
|
+
*
|
1743
|
+
* @extends pm_node_t
|
1744
|
+
*/
|
1745
|
+
typedef struct pm_class_variable_and_write_node {
|
1746
|
+
/** The embedded base node. */
|
1747
|
+
pm_node_t base;
|
1748
|
+
|
1749
|
+
/** ClassVariableAndWriteNode#name */
|
1750
|
+
pm_constant_id_t name;
|
1751
|
+
|
1752
|
+
/** ClassVariableAndWriteNode#name_loc */
|
1753
|
+
pm_location_t name_loc;
|
1754
|
+
|
1755
|
+
/** ClassVariableAndWriteNode#operator_loc */
|
1756
|
+
pm_location_t operator_loc;
|
1757
|
+
|
1758
|
+
/** ClassVariableAndWriteNode#value */
|
1759
|
+
struct pm_node *value;
|
1760
|
+
} pm_class_variable_and_write_node_t;
|
1761
|
+
|
1762
|
+
/**
|
1763
|
+
* ClassVariableOperatorWriteNode
|
1764
|
+
*
|
1765
|
+
* Type: PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
|
1766
|
+
*
|
1767
|
+
* @extends pm_node_t
|
1768
|
+
*/
|
1769
|
+
typedef struct pm_class_variable_operator_write_node {
|
1770
|
+
/** The embedded base node. */
|
1771
|
+
pm_node_t base;
|
1772
|
+
|
1773
|
+
/** ClassVariableOperatorWriteNode#name */
|
1774
|
+
pm_constant_id_t name;
|
1775
|
+
|
1776
|
+
/** ClassVariableOperatorWriteNode#name_loc */
|
1777
|
+
pm_location_t name_loc;
|
1778
|
+
|
1779
|
+
/** ClassVariableOperatorWriteNode#operator_loc */
|
1780
|
+
pm_location_t operator_loc;
|
1781
|
+
|
1782
|
+
/** ClassVariableOperatorWriteNode#value */
|
1783
|
+
struct pm_node *value;
|
1784
|
+
|
1785
|
+
/** ClassVariableOperatorWriteNode#operator */
|
1786
|
+
pm_constant_id_t operator;
|
1787
|
+
} pm_class_variable_operator_write_node_t;
|
1788
|
+
|
1789
|
+
/**
|
1790
|
+
* ClassVariableOrWriteNode
|
1791
|
+
*
|
1792
|
+
* Type: PM_CLASS_VARIABLE_OR_WRITE_NODE
|
1793
|
+
*
|
1794
|
+
* @extends pm_node_t
|
1795
|
+
*/
|
1796
|
+
typedef struct pm_class_variable_or_write_node {
|
1797
|
+
/** The embedded base node. */
|
1798
|
+
pm_node_t base;
|
1799
|
+
|
1800
|
+
/** ClassVariableOrWriteNode#name */
|
1801
|
+
pm_constant_id_t name;
|
1802
|
+
|
1803
|
+
/** ClassVariableOrWriteNode#name_loc */
|
1804
|
+
pm_location_t name_loc;
|
1805
|
+
|
1806
|
+
/** ClassVariableOrWriteNode#operator_loc */
|
1807
|
+
pm_location_t operator_loc;
|
1808
|
+
|
1809
|
+
/** ClassVariableOrWriteNode#value */
|
1810
|
+
struct pm_node *value;
|
1811
|
+
} pm_class_variable_or_write_node_t;
|
1812
|
+
|
1813
|
+
/**
|
1814
|
+
* ClassVariableReadNode
|
1815
|
+
*
|
1816
|
+
* Type: PM_CLASS_VARIABLE_READ_NODE
|
1817
|
+
*
|
1818
|
+
* @extends pm_node_t
|
1819
|
+
*/
|
1820
|
+
typedef struct pm_class_variable_read_node {
|
1821
|
+
/** The embedded base node. */
|
1822
|
+
pm_node_t base;
|
1823
|
+
|
1824
|
+
/** ClassVariableReadNode#name */
|
1825
|
+
pm_constant_id_t name;
|
1826
|
+
} pm_class_variable_read_node_t;
|
1827
|
+
|
1828
|
+
/**
|
1829
|
+
* ClassVariableTargetNode
|
1830
|
+
*
|
1831
|
+
* Type: PM_CLASS_VARIABLE_TARGET_NODE
|
1832
|
+
*
|
1833
|
+
* @extends pm_node_t
|
1834
|
+
*/
|
1835
|
+
typedef struct pm_class_variable_target_node {
|
1836
|
+
/** The embedded base node. */
|
1837
|
+
pm_node_t base;
|
1838
|
+
|
1839
|
+
/** ClassVariableTargetNode#name */
|
1840
|
+
pm_constant_id_t name;
|
1841
|
+
} pm_class_variable_target_node_t;
|
1842
|
+
|
1843
|
+
/**
|
1844
|
+
* ClassVariableWriteNode
|
1845
|
+
*
|
1846
|
+
* Type: PM_CLASS_VARIABLE_WRITE_NODE
|
1847
|
+
*
|
1848
|
+
* @extends pm_node_t
|
1849
|
+
*/
|
1850
|
+
typedef struct pm_class_variable_write_node {
|
1851
|
+
/** The embedded base node. */
|
1852
|
+
pm_node_t base;
|
1853
|
+
|
1854
|
+
/** ClassVariableWriteNode#name */
|
1855
|
+
pm_constant_id_t name;
|
1856
|
+
|
1857
|
+
/** ClassVariableWriteNode#name_loc */
|
1858
|
+
pm_location_t name_loc;
|
1859
|
+
|
1860
|
+
/** ClassVariableWriteNode#value */
|
1861
|
+
struct pm_node *value;
|
1862
|
+
|
1863
|
+
/** ClassVariableWriteNode#operator_loc */
|
1864
|
+
pm_location_t operator_loc;
|
1865
|
+
} pm_class_variable_write_node_t;
|
1866
|
+
|
1867
|
+
/**
|
1868
|
+
* ConstantAndWriteNode
|
1869
|
+
*
|
1870
|
+
* Type: PM_CONSTANT_AND_WRITE_NODE
|
1871
|
+
*
|
1872
|
+
* @extends pm_node_t
|
1873
|
+
*/
|
1874
|
+
typedef struct pm_constant_and_write_node {
|
1875
|
+
/** The embedded base node. */
|
1876
|
+
pm_node_t base;
|
1877
|
+
|
1878
|
+
/** ConstantAndWriteNode#name */
|
1879
|
+
pm_constant_id_t name;
|
1880
|
+
|
1881
|
+
/** ConstantAndWriteNode#name_loc */
|
1882
|
+
pm_location_t name_loc;
|
1883
|
+
|
1884
|
+
/** ConstantAndWriteNode#operator_loc */
|
1885
|
+
pm_location_t operator_loc;
|
1886
|
+
|
1887
|
+
/** ConstantAndWriteNode#value */
|
1888
|
+
struct pm_node *value;
|
1889
|
+
} pm_constant_and_write_node_t;
|
1890
|
+
|
1891
|
+
/**
|
1892
|
+
* ConstantOperatorWriteNode
|
1893
|
+
*
|
1894
|
+
* Type: PM_CONSTANT_OPERATOR_WRITE_NODE
|
1895
|
+
*
|
1896
|
+
* @extends pm_node_t
|
1897
|
+
*/
|
1898
|
+
typedef struct pm_constant_operator_write_node {
|
1899
|
+
/** The embedded base node. */
|
1900
|
+
pm_node_t base;
|
1901
|
+
|
1902
|
+
/** ConstantOperatorWriteNode#name */
|
1903
|
+
pm_constant_id_t name;
|
1904
|
+
|
1905
|
+
/** ConstantOperatorWriteNode#name_loc */
|
1906
|
+
pm_location_t name_loc;
|
1907
|
+
|
1908
|
+
/** ConstantOperatorWriteNode#operator_loc */
|
1909
|
+
pm_location_t operator_loc;
|
1910
|
+
|
1911
|
+
/** ConstantOperatorWriteNode#value */
|
1912
|
+
struct pm_node *value;
|
1913
|
+
|
1914
|
+
/** ConstantOperatorWriteNode#operator */
|
1915
|
+
pm_constant_id_t operator;
|
1916
|
+
} pm_constant_operator_write_node_t;
|
1917
|
+
|
1918
|
+
/**
|
1919
|
+
* ConstantOrWriteNode
|
1920
|
+
*
|
1921
|
+
* Type: PM_CONSTANT_OR_WRITE_NODE
|
1922
|
+
*
|
1923
|
+
* @extends pm_node_t
|
1924
|
+
*/
|
1925
|
+
typedef struct pm_constant_or_write_node {
|
1926
|
+
/** The embedded base node. */
|
1927
|
+
pm_node_t base;
|
1928
|
+
|
1929
|
+
/** ConstantOrWriteNode#name */
|
1930
|
+
pm_constant_id_t name;
|
1931
|
+
|
1932
|
+
/** ConstantOrWriteNode#name_loc */
|
1933
|
+
pm_location_t name_loc;
|
1934
|
+
|
1935
|
+
/** ConstantOrWriteNode#operator_loc */
|
1936
|
+
pm_location_t operator_loc;
|
1937
|
+
|
1938
|
+
/** ConstantOrWriteNode#value */
|
1939
|
+
struct pm_node *value;
|
1940
|
+
} pm_constant_or_write_node_t;
|
1941
|
+
|
1942
|
+
/**
|
1943
|
+
* ConstantPathAndWriteNode
|
1944
|
+
*
|
1945
|
+
* Type: PM_CONSTANT_PATH_AND_WRITE_NODE
|
1946
|
+
*
|
1947
|
+
* @extends pm_node_t
|
1948
|
+
*/
|
1949
|
+
typedef struct pm_constant_path_and_write_node {
|
1950
|
+
/** The embedded base node. */
|
1951
|
+
pm_node_t base;
|
1952
|
+
|
1953
|
+
/** ConstantPathAndWriteNode#target */
|
1954
|
+
struct pm_constant_path_node *target;
|
1955
|
+
|
1956
|
+
/** ConstantPathAndWriteNode#operator_loc */
|
1957
|
+
pm_location_t operator_loc;
|
1958
|
+
|
1959
|
+
/** ConstantPathAndWriteNode#value */
|
1960
|
+
struct pm_node *value;
|
1961
|
+
} pm_constant_path_and_write_node_t;
|
1962
|
+
|
1963
|
+
/**
|
1964
|
+
* ConstantPathNode
|
1965
|
+
*
|
1966
|
+
* Type: PM_CONSTANT_PATH_NODE
|
1967
|
+
*
|
1968
|
+
* @extends pm_node_t
|
1969
|
+
*/
|
1970
|
+
typedef struct pm_constant_path_node {
|
1971
|
+
/** The embedded base node. */
|
1972
|
+
pm_node_t base;
|
1973
|
+
|
1974
|
+
/** ConstantPathNode#parent */
|
1975
|
+
struct pm_node *parent;
|
1976
|
+
|
1977
|
+
/** ConstantPathNode#child */
|
1978
|
+
struct pm_node *child;
|
1979
|
+
|
1980
|
+
/** ConstantPathNode#delimiter_loc */
|
1981
|
+
pm_location_t delimiter_loc;
|
1982
|
+
} pm_constant_path_node_t;
|
1983
|
+
|
1984
|
+
/**
|
1985
|
+
* ConstantPathOperatorWriteNode
|
1986
|
+
*
|
1987
|
+
* Type: PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
|
1988
|
+
*
|
1989
|
+
* @extends pm_node_t
|
1990
|
+
*/
|
1991
|
+
typedef struct pm_constant_path_operator_write_node {
|
1992
|
+
/** The embedded base node. */
|
1993
|
+
pm_node_t base;
|
1994
|
+
|
1995
|
+
/** ConstantPathOperatorWriteNode#target */
|
1996
|
+
struct pm_constant_path_node *target;
|
1997
|
+
|
1998
|
+
/** ConstantPathOperatorWriteNode#operator_loc */
|
1999
|
+
pm_location_t operator_loc;
|
2000
|
+
|
2001
|
+
/** ConstantPathOperatorWriteNode#value */
|
2002
|
+
struct pm_node *value;
|
2003
|
+
|
2004
|
+
/** ConstantPathOperatorWriteNode#operator */
|
2005
|
+
pm_constant_id_t operator;
|
2006
|
+
} pm_constant_path_operator_write_node_t;
|
2007
|
+
|
2008
|
+
/**
|
2009
|
+
* ConstantPathOrWriteNode
|
2010
|
+
*
|
2011
|
+
* Type: PM_CONSTANT_PATH_OR_WRITE_NODE
|
2012
|
+
*
|
2013
|
+
* @extends pm_node_t
|
2014
|
+
*/
|
2015
|
+
typedef struct pm_constant_path_or_write_node {
|
2016
|
+
/** The embedded base node. */
|
2017
|
+
pm_node_t base;
|
2018
|
+
|
2019
|
+
/** ConstantPathOrWriteNode#target */
|
2020
|
+
struct pm_constant_path_node *target;
|
2021
|
+
|
2022
|
+
/** ConstantPathOrWriteNode#operator_loc */
|
2023
|
+
pm_location_t operator_loc;
|
2024
|
+
|
2025
|
+
/** ConstantPathOrWriteNode#value */
|
2026
|
+
struct pm_node *value;
|
2027
|
+
} pm_constant_path_or_write_node_t;
|
2028
|
+
|
2029
|
+
/**
|
2030
|
+
* ConstantPathTargetNode
|
2031
|
+
*
|
2032
|
+
* Type: PM_CONSTANT_PATH_TARGET_NODE
|
2033
|
+
*
|
2034
|
+
* @extends pm_node_t
|
2035
|
+
*/
|
2036
|
+
typedef struct pm_constant_path_target_node {
|
2037
|
+
/** The embedded base node. */
|
2038
|
+
pm_node_t base;
|
2039
|
+
|
2040
|
+
/** ConstantPathTargetNode#parent */
|
2041
|
+
struct pm_node *parent;
|
2042
|
+
|
2043
|
+
/** ConstantPathTargetNode#child */
|
2044
|
+
struct pm_node *child;
|
2045
|
+
|
2046
|
+
/** ConstantPathTargetNode#delimiter_loc */
|
2047
|
+
pm_location_t delimiter_loc;
|
2048
|
+
} pm_constant_path_target_node_t;
|
2049
|
+
|
2050
|
+
/**
|
2051
|
+
* ConstantPathWriteNode
|
2052
|
+
*
|
2053
|
+
* Type: PM_CONSTANT_PATH_WRITE_NODE
|
2054
|
+
*
|
2055
|
+
* @extends pm_node_t
|
2056
|
+
*/
|
2057
|
+
typedef struct pm_constant_path_write_node {
|
2058
|
+
/** The embedded base node. */
|
2059
|
+
pm_node_t base;
|
2060
|
+
|
2061
|
+
/** ConstantPathWriteNode#target */
|
2062
|
+
struct pm_constant_path_node *target;
|
2063
|
+
|
2064
|
+
/** ConstantPathWriteNode#operator_loc */
|
2065
|
+
pm_location_t operator_loc;
|
2066
|
+
|
2067
|
+
/** ConstantPathWriteNode#value */
|
2068
|
+
struct pm_node *value;
|
2069
|
+
} pm_constant_path_write_node_t;
|
2070
|
+
|
2071
|
+
/**
|
2072
|
+
* ConstantReadNode
|
2073
|
+
*
|
2074
|
+
* Type: PM_CONSTANT_READ_NODE
|
2075
|
+
*
|
2076
|
+
* @extends pm_node_t
|
2077
|
+
*/
|
2078
|
+
typedef struct pm_constant_read_node {
|
2079
|
+
/** The embedded base node. */
|
2080
|
+
pm_node_t base;
|
2081
|
+
|
2082
|
+
/** ConstantReadNode#name */
|
2083
|
+
pm_constant_id_t name;
|
2084
|
+
} pm_constant_read_node_t;
|
2085
|
+
|
2086
|
+
/**
|
2087
|
+
* ConstantTargetNode
|
2088
|
+
*
|
2089
|
+
* Type: PM_CONSTANT_TARGET_NODE
|
2090
|
+
*
|
2091
|
+
* @extends pm_node_t
|
2092
|
+
*/
|
2093
|
+
typedef struct pm_constant_target_node {
|
2094
|
+
/** The embedded base node. */
|
2095
|
+
pm_node_t base;
|
2096
|
+
|
2097
|
+
/** ConstantTargetNode#name */
|
2098
|
+
pm_constant_id_t name;
|
2099
|
+
} pm_constant_target_node_t;
|
2100
|
+
|
2101
|
+
/**
|
2102
|
+
* ConstantWriteNode
|
2103
|
+
*
|
2104
|
+
* Type: PM_CONSTANT_WRITE_NODE
|
2105
|
+
*
|
2106
|
+
* @extends pm_node_t
|
2107
|
+
*/
|
2108
|
+
typedef struct pm_constant_write_node {
|
2109
|
+
/** The embedded base node. */
|
2110
|
+
pm_node_t base;
|
2111
|
+
|
2112
|
+
/** ConstantWriteNode#name */
|
2113
|
+
pm_constant_id_t name;
|
2114
|
+
|
2115
|
+
/** ConstantWriteNode#name_loc */
|
2116
|
+
pm_location_t name_loc;
|
2117
|
+
|
2118
|
+
/** ConstantWriteNode#value */
|
2119
|
+
struct pm_node *value;
|
2120
|
+
|
2121
|
+
/** ConstantWriteNode#operator_loc */
|
2122
|
+
pm_location_t operator_loc;
|
2123
|
+
} pm_constant_write_node_t;
|
2124
|
+
|
2125
|
+
/**
|
2126
|
+
* DefNode
|
2127
|
+
*
|
2128
|
+
* Type: PM_DEF_NODE
|
2129
|
+
*
|
2130
|
+
* @extends pm_node_t
|
2131
|
+
*/
|
2132
|
+
typedef struct pm_def_node {
|
2133
|
+
/** The embedded base node. */
|
2134
|
+
pm_node_t base;
|
2135
|
+
|
2136
|
+
/** DefNode#name */
|
2137
|
+
pm_constant_id_t name;
|
2138
|
+
|
2139
|
+
/** DefNode#name_loc */
|
2140
|
+
pm_location_t name_loc;
|
2141
|
+
|
2142
|
+
/** DefNode#receiver */
|
2143
|
+
struct pm_node *receiver;
|
2144
|
+
|
2145
|
+
/** DefNode#parameters */
|
2146
|
+
struct pm_parameters_node *parameters;
|
2147
|
+
|
2148
|
+
/** DefNode#body */
|
2149
|
+
struct pm_node *body;
|
2150
|
+
|
2151
|
+
/** DefNode#locals */
|
2152
|
+
pm_constant_id_list_t locals;
|
2153
|
+
|
2154
|
+
/** DefNode#locals_body_index */
|
2155
|
+
uint32_t locals_body_index;
|
2156
|
+
|
2157
|
+
/** DefNode#def_keyword_loc */
|
2158
|
+
pm_location_t def_keyword_loc;
|
2159
|
+
|
2160
|
+
/** DefNode#operator_loc */
|
2161
|
+
pm_location_t operator_loc;
|
2162
|
+
|
2163
|
+
/** DefNode#lparen_loc */
|
2164
|
+
pm_location_t lparen_loc;
|
2165
|
+
|
2166
|
+
/** DefNode#rparen_loc */
|
2167
|
+
pm_location_t rparen_loc;
|
2168
|
+
|
2169
|
+
/** DefNode#equal_loc */
|
2170
|
+
pm_location_t equal_loc;
|
2171
|
+
|
2172
|
+
/** DefNode#end_keyword_loc */
|
2173
|
+
pm_location_t end_keyword_loc;
|
2174
|
+
} pm_def_node_t;
|
2175
|
+
|
2176
|
+
/**
|
2177
|
+
* DefinedNode
|
2178
|
+
*
|
2179
|
+
* Type: PM_DEFINED_NODE
|
2180
|
+
*
|
2181
|
+
* @extends pm_node_t
|
2182
|
+
*/
|
2183
|
+
typedef struct pm_defined_node {
|
2184
|
+
/** The embedded base node. */
|
2185
|
+
pm_node_t base;
|
2186
|
+
|
2187
|
+
/** DefinedNode#lparen_loc */
|
2188
|
+
pm_location_t lparen_loc;
|
2189
|
+
|
2190
|
+
/** DefinedNode#value */
|
2191
|
+
struct pm_node *value;
|
2192
|
+
|
2193
|
+
/** DefinedNode#rparen_loc */
|
2194
|
+
pm_location_t rparen_loc;
|
2195
|
+
|
2196
|
+
/** DefinedNode#keyword_loc */
|
2197
|
+
pm_location_t keyword_loc;
|
2198
|
+
} pm_defined_node_t;
|
2199
|
+
|
2200
|
+
/**
|
2201
|
+
* ElseNode
|
2202
|
+
*
|
2203
|
+
* Type: PM_ELSE_NODE
|
2204
|
+
*
|
2205
|
+
* @extends pm_node_t
|
2206
|
+
*/
|
2207
|
+
typedef struct pm_else_node {
|
2208
|
+
/** The embedded base node. */
|
2209
|
+
pm_node_t base;
|
2210
|
+
|
2211
|
+
/** ElseNode#else_keyword_loc */
|
2212
|
+
pm_location_t else_keyword_loc;
|
2213
|
+
|
2214
|
+
/** ElseNode#statements */
|
2215
|
+
struct pm_statements_node *statements;
|
2216
|
+
|
2217
|
+
/** ElseNode#end_keyword_loc */
|
2218
|
+
pm_location_t end_keyword_loc;
|
2219
|
+
} pm_else_node_t;
|
2220
|
+
|
2221
|
+
/**
|
2222
|
+
* EmbeddedStatementsNode
|
2223
|
+
*
|
2224
|
+
* Type: PM_EMBEDDED_STATEMENTS_NODE
|
2225
|
+
*
|
2226
|
+
* @extends pm_node_t
|
2227
|
+
*/
|
2228
|
+
typedef struct pm_embedded_statements_node {
|
2229
|
+
/** The embedded base node. */
|
2230
|
+
pm_node_t base;
|
2231
|
+
|
2232
|
+
/** EmbeddedStatementsNode#opening_loc */
|
2233
|
+
pm_location_t opening_loc;
|
2234
|
+
|
2235
|
+
/** EmbeddedStatementsNode#statements */
|
2236
|
+
struct pm_statements_node *statements;
|
2237
|
+
|
2238
|
+
/** EmbeddedStatementsNode#closing_loc */
|
2239
|
+
pm_location_t closing_loc;
|
2240
|
+
} pm_embedded_statements_node_t;
|
2241
|
+
|
2242
|
+
/**
|
2243
|
+
* EmbeddedVariableNode
|
2244
|
+
*
|
2245
|
+
* Type: PM_EMBEDDED_VARIABLE_NODE
|
2246
|
+
*
|
2247
|
+
* @extends pm_node_t
|
2248
|
+
*/
|
2249
|
+
typedef struct pm_embedded_variable_node {
|
2250
|
+
/** The embedded base node. */
|
2251
|
+
pm_node_t base;
|
2252
|
+
|
2253
|
+
/** EmbeddedVariableNode#operator_loc */
|
2254
|
+
pm_location_t operator_loc;
|
2255
|
+
|
2256
|
+
/** EmbeddedVariableNode#variable */
|
2257
|
+
struct pm_node *variable;
|
2258
|
+
} pm_embedded_variable_node_t;
|
2259
|
+
|
2260
|
+
/**
|
2261
|
+
* EnsureNode
|
2262
|
+
*
|
2263
|
+
* Type: PM_ENSURE_NODE
|
2264
|
+
*
|
2265
|
+
* @extends pm_node_t
|
2266
|
+
*/
|
2267
|
+
typedef struct pm_ensure_node {
|
2268
|
+
/** The embedded base node. */
|
2269
|
+
pm_node_t base;
|
2270
|
+
|
2271
|
+
/** EnsureNode#ensure_keyword_loc */
|
2272
|
+
pm_location_t ensure_keyword_loc;
|
2273
|
+
|
2274
|
+
/** EnsureNode#statements */
|
2275
|
+
struct pm_statements_node *statements;
|
2276
|
+
|
2277
|
+
/** EnsureNode#end_keyword_loc */
|
2278
|
+
pm_location_t end_keyword_loc;
|
2279
|
+
} pm_ensure_node_t;
|
2280
|
+
|
2281
|
+
/**
|
2282
|
+
* FalseNode
|
2283
|
+
*
|
2284
|
+
* Type: PM_FALSE_NODE
|
2285
|
+
*
|
2286
|
+
* @extends pm_node_t
|
2287
|
+
*/
|
2288
|
+
typedef struct pm_false_node {
|
2289
|
+
/** The embedded base node. */
|
2290
|
+
pm_node_t base;
|
2291
|
+
} pm_false_node_t;
|
2292
|
+
|
2293
|
+
/**
|
2294
|
+
* FindPatternNode
|
2295
|
+
*
|
2296
|
+
* Type: PM_FIND_PATTERN_NODE
|
2297
|
+
*
|
2298
|
+
* @extends pm_node_t
|
2299
|
+
*/
|
2300
|
+
typedef struct pm_find_pattern_node {
|
2301
|
+
/** The embedded base node. */
|
2302
|
+
pm_node_t base;
|
2303
|
+
|
2304
|
+
/** FindPatternNode#constant */
|
2305
|
+
struct pm_node *constant;
|
2306
|
+
|
2307
|
+
/** FindPatternNode#left */
|
2308
|
+
struct pm_node *left;
|
2309
|
+
|
2310
|
+
/** FindPatternNode#requireds */
|
2311
|
+
struct pm_node_list requireds;
|
2312
|
+
|
2313
|
+
/** FindPatternNode#right */
|
2314
|
+
struct pm_node *right;
|
2315
|
+
|
2316
|
+
/** FindPatternNode#opening_loc */
|
2317
|
+
pm_location_t opening_loc;
|
2318
|
+
|
2319
|
+
/** FindPatternNode#closing_loc */
|
2320
|
+
pm_location_t closing_loc;
|
2321
|
+
} pm_find_pattern_node_t;
|
2322
|
+
|
2323
|
+
/**
|
2324
|
+
* FlipFlopNode
|
2325
|
+
*
|
2326
|
+
* Type: PM_FLIP_FLOP_NODE
|
2327
|
+
* Flags:
|
2328
|
+
* PM_RANGE_FLAGS_EXCLUDE_END
|
2329
|
+
*
|
2330
|
+
* @extends pm_node_t
|
2331
|
+
*/
|
2332
|
+
typedef struct pm_flip_flop_node {
|
2333
|
+
/** The embedded base node. */
|
2334
|
+
pm_node_t base;
|
2335
|
+
|
2336
|
+
/** FlipFlopNode#left */
|
2337
|
+
struct pm_node *left;
|
2338
|
+
|
2339
|
+
/** FlipFlopNode#right */
|
2340
|
+
struct pm_node *right;
|
2341
|
+
|
2342
|
+
/** FlipFlopNode#operator_loc */
|
2343
|
+
pm_location_t operator_loc;
|
2344
|
+
} pm_flip_flop_node_t;
|
2345
|
+
|
2346
|
+
/**
|
2347
|
+
* FloatNode
|
2348
|
+
*
|
2349
|
+
* Type: PM_FLOAT_NODE
|
2350
|
+
*
|
2351
|
+
* @extends pm_node_t
|
2352
|
+
*/
|
2353
|
+
typedef struct pm_float_node {
|
2354
|
+
/** The embedded base node. */
|
2355
|
+
pm_node_t base;
|
2356
|
+
} pm_float_node_t;
|
2357
|
+
|
2358
|
+
/**
|
2359
|
+
* ForNode
|
2360
|
+
*
|
2361
|
+
* Type: PM_FOR_NODE
|
2362
|
+
*
|
2363
|
+
* @extends pm_node_t
|
2364
|
+
*/
|
2365
|
+
typedef struct pm_for_node {
|
2366
|
+
/** The embedded base node. */
|
2367
|
+
pm_node_t base;
|
2368
|
+
|
2369
|
+
/** ForNode#index */
|
2370
|
+
struct pm_node *index;
|
2371
|
+
|
2372
|
+
/** ForNode#collection */
|
2373
|
+
struct pm_node *collection;
|
2374
|
+
|
2375
|
+
/** ForNode#statements */
|
2376
|
+
struct pm_statements_node *statements;
|
2377
|
+
|
2378
|
+
/** ForNode#for_keyword_loc */
|
2379
|
+
pm_location_t for_keyword_loc;
|
2380
|
+
|
2381
|
+
/** ForNode#in_keyword_loc */
|
2382
|
+
pm_location_t in_keyword_loc;
|
2383
|
+
|
2384
|
+
/** ForNode#do_keyword_loc */
|
2385
|
+
pm_location_t do_keyword_loc;
|
2386
|
+
|
2387
|
+
/** ForNode#end_keyword_loc */
|
2388
|
+
pm_location_t end_keyword_loc;
|
2389
|
+
} pm_for_node_t;
|
2390
|
+
|
2391
|
+
/**
|
2392
|
+
* ForwardingArgumentsNode
|
2393
|
+
*
|
2394
|
+
* Type: PM_FORWARDING_ARGUMENTS_NODE
|
2395
|
+
*
|
2396
|
+
* @extends pm_node_t
|
2397
|
+
*/
|
2398
|
+
typedef struct pm_forwarding_arguments_node {
|
2399
|
+
/** The embedded base node. */
|
2400
|
+
pm_node_t base;
|
2401
|
+
} pm_forwarding_arguments_node_t;
|
2402
|
+
|
2403
|
+
/**
|
2404
|
+
* ForwardingParameterNode
|
2405
|
+
*
|
2406
|
+
* Type: PM_FORWARDING_PARAMETER_NODE
|
2407
|
+
*
|
2408
|
+
* @extends pm_node_t
|
2409
|
+
*/
|
2410
|
+
typedef struct pm_forwarding_parameter_node {
|
2411
|
+
/** The embedded base node. */
|
2412
|
+
pm_node_t base;
|
2413
|
+
} pm_forwarding_parameter_node_t;
|
2414
|
+
|
2415
|
+
/**
|
2416
|
+
* ForwardingSuperNode
|
2417
|
+
*
|
2418
|
+
* Type: PM_FORWARDING_SUPER_NODE
|
2419
|
+
*
|
2420
|
+
* @extends pm_node_t
|
2421
|
+
*/
|
2422
|
+
typedef struct pm_forwarding_super_node {
|
2423
|
+
/** The embedded base node. */
|
2424
|
+
pm_node_t base;
|
2425
|
+
|
2426
|
+
/** ForwardingSuperNode#block */
|
2427
|
+
struct pm_block_node *block;
|
2428
|
+
} pm_forwarding_super_node_t;
|
2429
|
+
|
2430
|
+
/**
|
2431
|
+
* GlobalVariableAndWriteNode
|
2432
|
+
*
|
2433
|
+
* Type: PM_GLOBAL_VARIABLE_AND_WRITE_NODE
|
2434
|
+
*
|
2435
|
+
* @extends pm_node_t
|
2436
|
+
*/
|
2437
|
+
typedef struct pm_global_variable_and_write_node {
|
2438
|
+
/** The embedded base node. */
|
2439
|
+
pm_node_t base;
|
2440
|
+
|
2441
|
+
/** GlobalVariableAndWriteNode#name */
|
2442
|
+
pm_constant_id_t name;
|
2443
|
+
|
2444
|
+
/** GlobalVariableAndWriteNode#name_loc */
|
2445
|
+
pm_location_t name_loc;
|
2446
|
+
|
2447
|
+
/** GlobalVariableAndWriteNode#operator_loc */
|
2448
|
+
pm_location_t operator_loc;
|
2449
|
+
|
2450
|
+
/** GlobalVariableAndWriteNode#value */
|
2451
|
+
struct pm_node *value;
|
2452
|
+
} pm_global_variable_and_write_node_t;
|
2453
|
+
|
2454
|
+
/**
|
2455
|
+
* GlobalVariableOperatorWriteNode
|
2456
|
+
*
|
2457
|
+
* Type: PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
|
2458
|
+
*
|
2459
|
+
* @extends pm_node_t
|
2460
|
+
*/
|
2461
|
+
typedef struct pm_global_variable_operator_write_node {
|
2462
|
+
/** The embedded base node. */
|
2463
|
+
pm_node_t base;
|
2464
|
+
|
2465
|
+
/** GlobalVariableOperatorWriteNode#name */
|
2466
|
+
pm_constant_id_t name;
|
2467
|
+
|
2468
|
+
/** GlobalVariableOperatorWriteNode#name_loc */
|
2469
|
+
pm_location_t name_loc;
|
2470
|
+
|
2471
|
+
/** GlobalVariableOperatorWriteNode#operator_loc */
|
2472
|
+
pm_location_t operator_loc;
|
2473
|
+
|
2474
|
+
/** GlobalVariableOperatorWriteNode#value */
|
2475
|
+
struct pm_node *value;
|
2476
|
+
|
2477
|
+
/** GlobalVariableOperatorWriteNode#operator */
|
2478
|
+
pm_constant_id_t operator;
|
2479
|
+
} pm_global_variable_operator_write_node_t;
|
2480
|
+
|
2481
|
+
/**
|
2482
|
+
* GlobalVariableOrWriteNode
|
2483
|
+
*
|
2484
|
+
* Type: PM_GLOBAL_VARIABLE_OR_WRITE_NODE
|
2485
|
+
*
|
2486
|
+
* @extends pm_node_t
|
2487
|
+
*/
|
2488
|
+
typedef struct pm_global_variable_or_write_node {
|
2489
|
+
/** The embedded base node. */
|
2490
|
+
pm_node_t base;
|
2491
|
+
|
2492
|
+
/** GlobalVariableOrWriteNode#name */
|
2493
|
+
pm_constant_id_t name;
|
2494
|
+
|
2495
|
+
/** GlobalVariableOrWriteNode#name_loc */
|
2496
|
+
pm_location_t name_loc;
|
2497
|
+
|
2498
|
+
/** GlobalVariableOrWriteNode#operator_loc */
|
2499
|
+
pm_location_t operator_loc;
|
2500
|
+
|
2501
|
+
/** GlobalVariableOrWriteNode#value */
|
2502
|
+
struct pm_node *value;
|
2503
|
+
} pm_global_variable_or_write_node_t;
|
2504
|
+
|
2505
|
+
/**
|
2506
|
+
* GlobalVariableReadNode
|
2507
|
+
*
|
2508
|
+
* Type: PM_GLOBAL_VARIABLE_READ_NODE
|
2509
|
+
*
|
2510
|
+
* @extends pm_node_t
|
2511
|
+
*/
|
2512
|
+
typedef struct pm_global_variable_read_node {
|
2513
|
+
/** The embedded base node. */
|
2514
|
+
pm_node_t base;
|
2515
|
+
|
2516
|
+
/** GlobalVariableReadNode#name */
|
2517
|
+
pm_constant_id_t name;
|
2518
|
+
} pm_global_variable_read_node_t;
|
2519
|
+
|
2520
|
+
/**
|
2521
|
+
* GlobalVariableTargetNode
|
2522
|
+
*
|
2523
|
+
* Type: PM_GLOBAL_VARIABLE_TARGET_NODE
|
2524
|
+
*
|
2525
|
+
* @extends pm_node_t
|
2526
|
+
*/
|
2527
|
+
typedef struct pm_global_variable_target_node {
|
2528
|
+
/** The embedded base node. */
|
2529
|
+
pm_node_t base;
|
2530
|
+
|
2531
|
+
/** GlobalVariableTargetNode#name */
|
2532
|
+
pm_constant_id_t name;
|
2533
|
+
} pm_global_variable_target_node_t;
|
2534
|
+
|
2535
|
+
/**
|
2536
|
+
* GlobalVariableWriteNode
|
2537
|
+
*
|
2538
|
+
* Type: PM_GLOBAL_VARIABLE_WRITE_NODE
|
2539
|
+
*
|
2540
|
+
* @extends pm_node_t
|
2541
|
+
*/
|
2542
|
+
typedef struct pm_global_variable_write_node {
|
2543
|
+
/** The embedded base node. */
|
2544
|
+
pm_node_t base;
|
2545
|
+
|
2546
|
+
/** GlobalVariableWriteNode#name */
|
2547
|
+
pm_constant_id_t name;
|
2548
|
+
|
2549
|
+
/** GlobalVariableWriteNode#name_loc */
|
2550
|
+
pm_location_t name_loc;
|
2551
|
+
|
2552
|
+
/** GlobalVariableWriteNode#value */
|
2553
|
+
struct pm_node *value;
|
2554
|
+
|
2555
|
+
/** GlobalVariableWriteNode#operator_loc */
|
2556
|
+
pm_location_t operator_loc;
|
2557
|
+
} pm_global_variable_write_node_t;
|
2558
|
+
|
2559
|
+
/**
|
2560
|
+
* HashNode
|
2561
|
+
*
|
2562
|
+
* Type: PM_HASH_NODE
|
2563
|
+
*
|
2564
|
+
* @extends pm_node_t
|
2565
|
+
*/
|
2566
|
+
typedef struct pm_hash_node {
|
2567
|
+
/** The embedded base node. */
|
2568
|
+
pm_node_t base;
|
2569
|
+
|
2570
|
+
/** HashNode#opening_loc */
|
2571
|
+
pm_location_t opening_loc;
|
2572
|
+
|
2573
|
+
/** HashNode#elements */
|
2574
|
+
struct pm_node_list elements;
|
2575
|
+
|
2576
|
+
/** HashNode#closing_loc */
|
2577
|
+
pm_location_t closing_loc;
|
2578
|
+
} pm_hash_node_t;
|
2579
|
+
|
2580
|
+
/**
|
2581
|
+
* HashPatternNode
|
2582
|
+
*
|
2583
|
+
* Type: PM_HASH_PATTERN_NODE
|
2584
|
+
*
|
2585
|
+
* @extends pm_node_t
|
2586
|
+
*/
|
2587
|
+
typedef struct pm_hash_pattern_node {
|
2588
|
+
/** The embedded base node. */
|
2589
|
+
pm_node_t base;
|
2590
|
+
|
2591
|
+
/** HashPatternNode#constant */
|
2592
|
+
struct pm_node *constant;
|
2593
|
+
|
2594
|
+
/** HashPatternNode#elements */
|
2595
|
+
struct pm_node_list elements;
|
2596
|
+
|
2597
|
+
/** HashPatternNode#rest */
|
2598
|
+
struct pm_node *rest;
|
2599
|
+
|
2600
|
+
/** HashPatternNode#opening_loc */
|
2601
|
+
pm_location_t opening_loc;
|
2602
|
+
|
2603
|
+
/** HashPatternNode#closing_loc */
|
2604
|
+
pm_location_t closing_loc;
|
2605
|
+
} pm_hash_pattern_node_t;
|
2606
|
+
|
2607
|
+
/**
|
2608
|
+
* IfNode
|
2609
|
+
*
|
2610
|
+
* Type: PM_IF_NODE
|
2611
|
+
*
|
2612
|
+
* @extends pm_node_t
|
2613
|
+
*/
|
2614
|
+
typedef struct pm_if_node {
|
2615
|
+
/** The embedded base node. */
|
2616
|
+
pm_node_t base;
|
2617
|
+
|
2618
|
+
/** IfNode#if_keyword_loc */
|
2619
|
+
pm_location_t if_keyword_loc;
|
2620
|
+
|
2621
|
+
/** IfNode#predicate */
|
2622
|
+
struct pm_node *predicate;
|
2623
|
+
|
2624
|
+
/** IfNode#then_keyword_loc */
|
2625
|
+
pm_location_t then_keyword_loc;
|
2626
|
+
|
2627
|
+
/** IfNode#statements */
|
2628
|
+
struct pm_statements_node *statements;
|
2629
|
+
|
2630
|
+
/** IfNode#consequent */
|
2631
|
+
struct pm_node *consequent;
|
2632
|
+
|
2633
|
+
/** IfNode#end_keyword_loc */
|
2634
|
+
pm_location_t end_keyword_loc;
|
2635
|
+
} pm_if_node_t;
|
2636
|
+
|
2637
|
+
/**
|
2638
|
+
* ImaginaryNode
|
2639
|
+
*
|
2640
|
+
* Type: PM_IMAGINARY_NODE
|
2641
|
+
*
|
2642
|
+
* @extends pm_node_t
|
2643
|
+
*/
|
2644
|
+
typedef struct pm_imaginary_node {
|
2645
|
+
/** The embedded base node. */
|
2646
|
+
pm_node_t base;
|
2647
|
+
|
2648
|
+
/** ImaginaryNode#numeric */
|
2649
|
+
struct pm_node *numeric;
|
2650
|
+
} pm_imaginary_node_t;
|
2651
|
+
|
2652
|
+
/**
|
2653
|
+
* ImplicitNode
|
2654
|
+
*
|
2655
|
+
* Type: PM_IMPLICIT_NODE
|
2656
|
+
*
|
2657
|
+
* @extends pm_node_t
|
2658
|
+
*/
|
2659
|
+
typedef struct pm_implicit_node {
|
2660
|
+
/** The embedded base node. */
|
2661
|
+
pm_node_t base;
|
2662
|
+
|
2663
|
+
/** ImplicitNode#value */
|
2664
|
+
struct pm_node *value;
|
2665
|
+
} pm_implicit_node_t;
|
2666
|
+
|
2667
|
+
/**
|
2668
|
+
* ImplicitRestNode
|
2669
|
+
*
|
2670
|
+
* Type: PM_IMPLICIT_REST_NODE
|
2671
|
+
*
|
2672
|
+
* @extends pm_node_t
|
2673
|
+
*/
|
2674
|
+
typedef struct pm_implicit_rest_node {
|
2675
|
+
/** The embedded base node. */
|
2676
|
+
pm_node_t base;
|
2677
|
+
} pm_implicit_rest_node_t;
|
2678
|
+
|
2679
|
+
/**
|
2680
|
+
* InNode
|
2681
|
+
*
|
2682
|
+
* Type: PM_IN_NODE
|
2683
|
+
*
|
2684
|
+
* @extends pm_node_t
|
2685
|
+
*/
|
2686
|
+
typedef struct pm_in_node {
|
2687
|
+
/** The embedded base node. */
|
2688
|
+
pm_node_t base;
|
2689
|
+
|
2690
|
+
/** InNode#pattern */
|
2691
|
+
struct pm_node *pattern;
|
2692
|
+
|
2693
|
+
/** InNode#statements */
|
2694
|
+
struct pm_statements_node *statements;
|
2695
|
+
|
2696
|
+
/** InNode#in_loc */
|
2697
|
+
pm_location_t in_loc;
|
2698
|
+
|
2699
|
+
/** InNode#then_loc */
|
2700
|
+
pm_location_t then_loc;
|
2701
|
+
} pm_in_node_t;
|
2702
|
+
|
2703
|
+
/**
|
2704
|
+
* IndexAndWriteNode
|
2705
|
+
*
|
2706
|
+
* Type: PM_INDEX_AND_WRITE_NODE
|
2707
|
+
* Flags:
|
2708
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2709
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2710
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
2711
|
+
*
|
2712
|
+
* @extends pm_node_t
|
2713
|
+
*/
|
2714
|
+
typedef struct pm_index_and_write_node {
|
2715
|
+
/** The embedded base node. */
|
2716
|
+
pm_node_t base;
|
2717
|
+
|
2718
|
+
/** IndexAndWriteNode#receiver */
|
2719
|
+
struct pm_node *receiver;
|
2720
|
+
|
2721
|
+
/** IndexAndWriteNode#call_operator_loc */
|
2722
|
+
pm_location_t call_operator_loc;
|
2723
|
+
|
2724
|
+
/** IndexAndWriteNode#opening_loc */
|
2725
|
+
pm_location_t opening_loc;
|
2726
|
+
|
2727
|
+
/** IndexAndWriteNode#arguments */
|
2728
|
+
struct pm_arguments_node *arguments;
|
2729
|
+
|
2730
|
+
/** IndexAndWriteNode#closing_loc */
|
2731
|
+
pm_location_t closing_loc;
|
2732
|
+
|
2733
|
+
/** IndexAndWriteNode#block */
|
2734
|
+
struct pm_node *block;
|
2735
|
+
|
2736
|
+
/** IndexAndWriteNode#operator_loc */
|
2737
|
+
pm_location_t operator_loc;
|
2738
|
+
|
2739
|
+
/** IndexAndWriteNode#value */
|
2740
|
+
struct pm_node *value;
|
2741
|
+
} pm_index_and_write_node_t;
|
2742
|
+
|
2743
|
+
/**
|
2744
|
+
* IndexOperatorWriteNode
|
2745
|
+
*
|
2746
|
+
* Type: PM_INDEX_OPERATOR_WRITE_NODE
|
2747
|
+
* Flags:
|
2748
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2749
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2750
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
2751
|
+
*
|
2752
|
+
* @extends pm_node_t
|
2753
|
+
*/
|
2754
|
+
typedef struct pm_index_operator_write_node {
|
2755
|
+
/** The embedded base node. */
|
2756
|
+
pm_node_t base;
|
2757
|
+
|
2758
|
+
/** IndexOperatorWriteNode#receiver */
|
2759
|
+
struct pm_node *receiver;
|
2760
|
+
|
2761
|
+
/** IndexOperatorWriteNode#call_operator_loc */
|
2762
|
+
pm_location_t call_operator_loc;
|
2763
|
+
|
2764
|
+
/** IndexOperatorWriteNode#opening_loc */
|
2765
|
+
pm_location_t opening_loc;
|
2766
|
+
|
2767
|
+
/** IndexOperatorWriteNode#arguments */
|
2768
|
+
struct pm_arguments_node *arguments;
|
2769
|
+
|
2770
|
+
/** IndexOperatorWriteNode#closing_loc */
|
2771
|
+
pm_location_t closing_loc;
|
2772
|
+
|
2773
|
+
/** IndexOperatorWriteNode#block */
|
2774
|
+
struct pm_node *block;
|
2775
|
+
|
2776
|
+
/** IndexOperatorWriteNode#operator */
|
2777
|
+
pm_constant_id_t operator;
|
2778
|
+
|
2779
|
+
/** IndexOperatorWriteNode#operator_loc */
|
2780
|
+
pm_location_t operator_loc;
|
2781
|
+
|
2782
|
+
/** IndexOperatorWriteNode#value */
|
2783
|
+
struct pm_node *value;
|
2784
|
+
} pm_index_operator_write_node_t;
|
2785
|
+
|
2786
|
+
/**
|
2787
|
+
* IndexOrWriteNode
|
2788
|
+
*
|
2789
|
+
* Type: PM_INDEX_OR_WRITE_NODE
|
2790
|
+
* Flags:
|
2791
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2792
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2793
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
2794
|
+
*
|
2795
|
+
* @extends pm_node_t
|
2796
|
+
*/
|
2797
|
+
typedef struct pm_index_or_write_node {
|
2798
|
+
/** The embedded base node. */
|
2799
|
+
pm_node_t base;
|
2800
|
+
|
2801
|
+
/** IndexOrWriteNode#receiver */
|
2802
|
+
struct pm_node *receiver;
|
2803
|
+
|
2804
|
+
/** IndexOrWriteNode#call_operator_loc */
|
2805
|
+
pm_location_t call_operator_loc;
|
2806
|
+
|
2807
|
+
/** IndexOrWriteNode#opening_loc */
|
2808
|
+
pm_location_t opening_loc;
|
2809
|
+
|
2810
|
+
/** IndexOrWriteNode#arguments */
|
2811
|
+
struct pm_arguments_node *arguments;
|
2812
|
+
|
2813
|
+
/** IndexOrWriteNode#closing_loc */
|
2814
|
+
pm_location_t closing_loc;
|
2815
|
+
|
2816
|
+
/** IndexOrWriteNode#block */
|
2817
|
+
struct pm_node *block;
|
2818
|
+
|
2819
|
+
/** IndexOrWriteNode#operator_loc */
|
2820
|
+
pm_location_t operator_loc;
|
2821
|
+
|
2822
|
+
/** IndexOrWriteNode#value */
|
2823
|
+
struct pm_node *value;
|
2824
|
+
} pm_index_or_write_node_t;
|
2825
|
+
|
2826
|
+
/**
|
2827
|
+
* IndexTargetNode
|
2828
|
+
*
|
2829
|
+
* Type: PM_INDEX_TARGET_NODE
|
2830
|
+
* Flags:
|
2831
|
+
* PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
2832
|
+
* PM_CALL_NODE_FLAGS_VARIABLE_CALL
|
2833
|
+
* PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
|
2834
|
+
*
|
2835
|
+
* @extends pm_node_t
|
2836
|
+
*/
|
2837
|
+
typedef struct pm_index_target_node {
|
2838
|
+
/** The embedded base node. */
|
2839
|
+
pm_node_t base;
|
2840
|
+
|
2841
|
+
/** IndexTargetNode#receiver */
|
2842
|
+
struct pm_node *receiver;
|
2843
|
+
|
2844
|
+
/** IndexTargetNode#opening_loc */
|
2845
|
+
pm_location_t opening_loc;
|
2846
|
+
|
2847
|
+
/** IndexTargetNode#arguments */
|
2848
|
+
struct pm_arguments_node *arguments;
|
2849
|
+
|
2850
|
+
/** IndexTargetNode#closing_loc */
|
2851
|
+
pm_location_t closing_loc;
|
2852
|
+
|
2853
|
+
/** IndexTargetNode#block */
|
2854
|
+
struct pm_node *block;
|
2855
|
+
} pm_index_target_node_t;
|
2856
|
+
|
2857
|
+
/**
|
2858
|
+
* InstanceVariableAndWriteNode
|
2859
|
+
*
|
2860
|
+
* Type: PM_INSTANCE_VARIABLE_AND_WRITE_NODE
|
2861
|
+
*
|
2862
|
+
* @extends pm_node_t
|
2863
|
+
*/
|
2864
|
+
typedef struct pm_instance_variable_and_write_node {
|
2865
|
+
/** The embedded base node. */
|
2866
|
+
pm_node_t base;
|
2867
|
+
|
2868
|
+
/** InstanceVariableAndWriteNode#name */
|
2869
|
+
pm_constant_id_t name;
|
2870
|
+
|
2871
|
+
/** InstanceVariableAndWriteNode#name_loc */
|
2872
|
+
pm_location_t name_loc;
|
2873
|
+
|
2874
|
+
/** InstanceVariableAndWriteNode#operator_loc */
|
2875
|
+
pm_location_t operator_loc;
|
2876
|
+
|
2877
|
+
/** InstanceVariableAndWriteNode#value */
|
2878
|
+
struct pm_node *value;
|
2879
|
+
} pm_instance_variable_and_write_node_t;
|
2880
|
+
|
2881
|
+
/**
|
2882
|
+
* InstanceVariableOperatorWriteNode
|
2883
|
+
*
|
2884
|
+
* Type: PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
|
2885
|
+
*
|
2886
|
+
* @extends pm_node_t
|
2887
|
+
*/
|
2888
|
+
typedef struct pm_instance_variable_operator_write_node {
|
2889
|
+
/** The embedded base node. */
|
2890
|
+
pm_node_t base;
|
2891
|
+
|
2892
|
+
/** InstanceVariableOperatorWriteNode#name */
|
2893
|
+
pm_constant_id_t name;
|
2894
|
+
|
2895
|
+
/** InstanceVariableOperatorWriteNode#name_loc */
|
2896
|
+
pm_location_t name_loc;
|
2897
|
+
|
2898
|
+
/** InstanceVariableOperatorWriteNode#operator_loc */
|
2899
|
+
pm_location_t operator_loc;
|
2900
|
+
|
2901
|
+
/** InstanceVariableOperatorWriteNode#value */
|
2902
|
+
struct pm_node *value;
|
2903
|
+
|
2904
|
+
/** InstanceVariableOperatorWriteNode#operator */
|
2905
|
+
pm_constant_id_t operator;
|
2906
|
+
} pm_instance_variable_operator_write_node_t;
|
2907
|
+
|
2908
|
+
/**
|
2909
|
+
* InstanceVariableOrWriteNode
|
2910
|
+
*
|
2911
|
+
* Type: PM_INSTANCE_VARIABLE_OR_WRITE_NODE
|
2912
|
+
*
|
2913
|
+
* @extends pm_node_t
|
2914
|
+
*/
|
2915
|
+
typedef struct pm_instance_variable_or_write_node {
|
2916
|
+
/** The embedded base node. */
|
2917
|
+
pm_node_t base;
|
2918
|
+
|
2919
|
+
/** InstanceVariableOrWriteNode#name */
|
2920
|
+
pm_constant_id_t name;
|
2921
|
+
|
2922
|
+
/** InstanceVariableOrWriteNode#name_loc */
|
2923
|
+
pm_location_t name_loc;
|
2924
|
+
|
2925
|
+
/** InstanceVariableOrWriteNode#operator_loc */
|
2926
|
+
pm_location_t operator_loc;
|
2927
|
+
|
2928
|
+
/** InstanceVariableOrWriteNode#value */
|
2929
|
+
struct pm_node *value;
|
2930
|
+
} pm_instance_variable_or_write_node_t;
|
2931
|
+
|
2932
|
+
/**
|
2933
|
+
* InstanceVariableReadNode
|
2934
|
+
*
|
2935
|
+
* Type: PM_INSTANCE_VARIABLE_READ_NODE
|
2936
|
+
*
|
2937
|
+
* @extends pm_node_t
|
2938
|
+
*/
|
2939
|
+
typedef struct pm_instance_variable_read_node {
|
2940
|
+
/** The embedded base node. */
|
2941
|
+
pm_node_t base;
|
2942
|
+
|
2943
|
+
/** InstanceVariableReadNode#name */
|
2944
|
+
pm_constant_id_t name;
|
2945
|
+
} pm_instance_variable_read_node_t;
|
2946
|
+
|
2947
|
+
/**
|
2948
|
+
* InstanceVariableTargetNode
|
2949
|
+
*
|
2950
|
+
* Type: PM_INSTANCE_VARIABLE_TARGET_NODE
|
2951
|
+
*
|
2952
|
+
* @extends pm_node_t
|
2953
|
+
*/
|
2954
|
+
typedef struct pm_instance_variable_target_node {
|
2955
|
+
/** The embedded base node. */
|
2956
|
+
pm_node_t base;
|
2957
|
+
|
2958
|
+
/** InstanceVariableTargetNode#name */
|
2959
|
+
pm_constant_id_t name;
|
2960
|
+
} pm_instance_variable_target_node_t;
|
2961
|
+
|
2962
|
+
/**
|
2963
|
+
* InstanceVariableWriteNode
|
2964
|
+
*
|
2965
|
+
* Type: PM_INSTANCE_VARIABLE_WRITE_NODE
|
2966
|
+
*
|
2967
|
+
* @extends pm_node_t
|
2968
|
+
*/
|
2969
|
+
typedef struct pm_instance_variable_write_node {
|
2970
|
+
/** The embedded base node. */
|
2971
|
+
pm_node_t base;
|
2972
|
+
|
2973
|
+
/** InstanceVariableWriteNode#name */
|
2974
|
+
pm_constant_id_t name;
|
2975
|
+
|
2976
|
+
/** InstanceVariableWriteNode#name_loc */
|
2977
|
+
pm_location_t name_loc;
|
2978
|
+
|
2979
|
+
/** InstanceVariableWriteNode#value */
|
2980
|
+
struct pm_node *value;
|
2981
|
+
|
2982
|
+
/** InstanceVariableWriteNode#operator_loc */
|
2983
|
+
pm_location_t operator_loc;
|
2984
|
+
} pm_instance_variable_write_node_t;
|
2985
|
+
|
2986
|
+
/**
|
2987
|
+
* IntegerNode
|
2988
|
+
*
|
2989
|
+
* Type: PM_INTEGER_NODE
|
2990
|
+
* Flags:
|
2991
|
+
* PM_INTEGER_BASE_FLAGS_BINARY
|
2992
|
+
* PM_INTEGER_BASE_FLAGS_DECIMAL
|
2993
|
+
* PM_INTEGER_BASE_FLAGS_OCTAL
|
2994
|
+
* PM_INTEGER_BASE_FLAGS_HEXADECIMAL
|
2995
|
+
*
|
2996
|
+
* @extends pm_node_t
|
2997
|
+
*/
|
2998
|
+
typedef struct pm_integer_node {
|
2999
|
+
/** The embedded base node. */
|
3000
|
+
pm_node_t base;
|
3001
|
+
} pm_integer_node_t;
|
3002
|
+
|
3003
|
+
/**
|
3004
|
+
* InterpolatedMatchLastLineNode
|
3005
|
+
*
|
3006
|
+
* Type: PM_INTERPOLATED_MATCH_LAST_LINE_NODE
|
3007
|
+
* Flags:
|
3008
|
+
* PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
3009
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
3010
|
+
* PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
3011
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ONCE
|
3012
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
3013
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
3014
|
+
* PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
3015
|
+
* PM_REGULAR_EXPRESSION_FLAGS_UTF_8
|
3016
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
|
3017
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
|
3018
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
|
3019
|
+
*
|
3020
|
+
* @extends pm_node_t
|
3021
|
+
*/
|
3022
|
+
typedef struct pm_interpolated_match_last_line_node {
|
3023
|
+
/** The embedded base node. */
|
3024
|
+
pm_node_t base;
|
3025
|
+
|
3026
|
+
/** InterpolatedMatchLastLineNode#opening_loc */
|
3027
|
+
pm_location_t opening_loc;
|
3028
|
+
|
3029
|
+
/** InterpolatedMatchLastLineNode#parts */
|
3030
|
+
struct pm_node_list parts;
|
3031
|
+
|
3032
|
+
/** InterpolatedMatchLastLineNode#closing_loc */
|
3033
|
+
pm_location_t closing_loc;
|
3034
|
+
} pm_interpolated_match_last_line_node_t;
|
3035
|
+
|
3036
|
+
/**
|
3037
|
+
* InterpolatedRegularExpressionNode
|
3038
|
+
*
|
3039
|
+
* Type: PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
|
3040
|
+
* Flags:
|
3041
|
+
* PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
3042
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
3043
|
+
* PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
3044
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ONCE
|
3045
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
3046
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
3047
|
+
* PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
3048
|
+
* PM_REGULAR_EXPRESSION_FLAGS_UTF_8
|
3049
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
|
3050
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
|
3051
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
|
3052
|
+
*
|
3053
|
+
* @extends pm_node_t
|
3054
|
+
*/
|
3055
|
+
typedef struct pm_interpolated_regular_expression_node {
|
3056
|
+
/** The embedded base node. */
|
3057
|
+
pm_node_t base;
|
3058
|
+
|
3059
|
+
/** InterpolatedRegularExpressionNode#opening_loc */
|
3060
|
+
pm_location_t opening_loc;
|
3061
|
+
|
3062
|
+
/** InterpolatedRegularExpressionNode#parts */
|
3063
|
+
struct pm_node_list parts;
|
3064
|
+
|
3065
|
+
/** InterpolatedRegularExpressionNode#closing_loc */
|
3066
|
+
pm_location_t closing_loc;
|
3067
|
+
} pm_interpolated_regular_expression_node_t;
|
3068
|
+
|
3069
|
+
/**
|
3070
|
+
* InterpolatedStringNode
|
3071
|
+
*
|
3072
|
+
* Type: PM_INTERPOLATED_STRING_NODE
|
3073
|
+
*
|
3074
|
+
* @extends pm_node_t
|
3075
|
+
*/
|
3076
|
+
typedef struct pm_interpolated_string_node {
|
3077
|
+
/** The embedded base node. */
|
3078
|
+
pm_node_t base;
|
3079
|
+
|
3080
|
+
/** InterpolatedStringNode#opening_loc */
|
3081
|
+
pm_location_t opening_loc;
|
3082
|
+
|
3083
|
+
/** InterpolatedStringNode#parts */
|
3084
|
+
struct pm_node_list parts;
|
3085
|
+
|
3086
|
+
/** InterpolatedStringNode#closing_loc */
|
3087
|
+
pm_location_t closing_loc;
|
3088
|
+
} pm_interpolated_string_node_t;
|
3089
|
+
|
3090
|
+
/**
|
3091
|
+
* InterpolatedSymbolNode
|
3092
|
+
*
|
3093
|
+
* Type: PM_INTERPOLATED_SYMBOL_NODE
|
3094
|
+
*
|
3095
|
+
* @extends pm_node_t
|
3096
|
+
*/
|
3097
|
+
typedef struct pm_interpolated_symbol_node {
|
3098
|
+
/** The embedded base node. */
|
3099
|
+
pm_node_t base;
|
3100
|
+
|
3101
|
+
/** InterpolatedSymbolNode#opening_loc */
|
3102
|
+
pm_location_t opening_loc;
|
3103
|
+
|
3104
|
+
/** InterpolatedSymbolNode#parts */
|
3105
|
+
struct pm_node_list parts;
|
3106
|
+
|
3107
|
+
/** InterpolatedSymbolNode#closing_loc */
|
3108
|
+
pm_location_t closing_loc;
|
3109
|
+
} pm_interpolated_symbol_node_t;
|
3110
|
+
|
3111
|
+
/**
|
3112
|
+
* InterpolatedXStringNode
|
3113
|
+
*
|
3114
|
+
* Type: PM_INTERPOLATED_X_STRING_NODE
|
3115
|
+
*
|
3116
|
+
* @extends pm_node_t
|
3117
|
+
*/
|
3118
|
+
typedef struct pm_interpolated_x_string_node {
|
3119
|
+
/** The embedded base node. */
|
3120
|
+
pm_node_t base;
|
3121
|
+
|
3122
|
+
/** InterpolatedXStringNode#opening_loc */
|
3123
|
+
pm_location_t opening_loc;
|
3124
|
+
|
3125
|
+
/** InterpolatedXStringNode#parts */
|
3126
|
+
struct pm_node_list parts;
|
3127
|
+
|
3128
|
+
/** InterpolatedXStringNode#closing_loc */
|
3129
|
+
pm_location_t closing_loc;
|
3130
|
+
} pm_interpolated_x_string_node_t;
|
3131
|
+
|
3132
|
+
/**
|
3133
|
+
* KeywordHashNode
|
3134
|
+
*
|
3135
|
+
* Type: PM_KEYWORD_HASH_NODE
|
3136
|
+
* Flags:
|
3137
|
+
* PM_KEYWORD_HASH_NODE_FLAGS_STATIC_KEYS
|
3138
|
+
*
|
3139
|
+
* @extends pm_node_t
|
3140
|
+
*/
|
3141
|
+
typedef struct pm_keyword_hash_node {
|
3142
|
+
/** The embedded base node. */
|
3143
|
+
pm_node_t base;
|
3144
|
+
|
3145
|
+
/** KeywordHashNode#elements */
|
3146
|
+
struct pm_node_list elements;
|
3147
|
+
} pm_keyword_hash_node_t;
|
3148
|
+
|
3149
|
+
/**
|
3150
|
+
* KeywordRestParameterNode
|
3151
|
+
*
|
3152
|
+
* Type: PM_KEYWORD_REST_PARAMETER_NODE
|
3153
|
+
*
|
3154
|
+
* @extends pm_node_t
|
3155
|
+
*/
|
3156
|
+
typedef struct pm_keyword_rest_parameter_node {
|
3157
|
+
/** The embedded base node. */
|
3158
|
+
pm_node_t base;
|
3159
|
+
|
3160
|
+
/** KeywordRestParameterNode#name */
|
3161
|
+
pm_constant_id_t name;
|
3162
|
+
|
3163
|
+
/** KeywordRestParameterNode#name_loc */
|
3164
|
+
pm_location_t name_loc;
|
3165
|
+
|
3166
|
+
/** KeywordRestParameterNode#operator_loc */
|
3167
|
+
pm_location_t operator_loc;
|
3168
|
+
} pm_keyword_rest_parameter_node_t;
|
3169
|
+
|
3170
|
+
/**
|
3171
|
+
* LambdaNode
|
3172
|
+
*
|
3173
|
+
* Type: PM_LAMBDA_NODE
|
3174
|
+
*
|
3175
|
+
* @extends pm_node_t
|
3176
|
+
*/
|
3177
|
+
typedef struct pm_lambda_node {
|
3178
|
+
/** The embedded base node. */
|
3179
|
+
pm_node_t base;
|
3180
|
+
|
3181
|
+
/** LambdaNode#locals */
|
3182
|
+
pm_constant_id_list_t locals;
|
3183
|
+
|
3184
|
+
/** LambdaNode#locals_body_index */
|
3185
|
+
uint32_t locals_body_index;
|
3186
|
+
|
3187
|
+
/** LambdaNode#operator_loc */
|
3188
|
+
pm_location_t operator_loc;
|
3189
|
+
|
3190
|
+
/** LambdaNode#opening_loc */
|
3191
|
+
pm_location_t opening_loc;
|
3192
|
+
|
3193
|
+
/** LambdaNode#closing_loc */
|
3194
|
+
pm_location_t closing_loc;
|
3195
|
+
|
3196
|
+
/** LambdaNode#parameters */
|
3197
|
+
struct pm_node *parameters;
|
3198
|
+
|
3199
|
+
/** LambdaNode#body */
|
3200
|
+
struct pm_node *body;
|
3201
|
+
} pm_lambda_node_t;
|
3202
|
+
|
3203
|
+
/**
|
3204
|
+
* LocalVariableAndWriteNode
|
3205
|
+
*
|
3206
|
+
* Type: PM_LOCAL_VARIABLE_AND_WRITE_NODE
|
3207
|
+
*
|
3208
|
+
* @extends pm_node_t
|
3209
|
+
*/
|
3210
|
+
typedef struct pm_local_variable_and_write_node {
|
3211
|
+
/** The embedded base node. */
|
3212
|
+
pm_node_t base;
|
3213
|
+
|
3214
|
+
/** LocalVariableAndWriteNode#name_loc */
|
3215
|
+
pm_location_t name_loc;
|
3216
|
+
|
3217
|
+
/** LocalVariableAndWriteNode#operator_loc */
|
3218
|
+
pm_location_t operator_loc;
|
3219
|
+
|
3220
|
+
/** LocalVariableAndWriteNode#value */
|
3221
|
+
struct pm_node *value;
|
3222
|
+
|
3223
|
+
/** LocalVariableAndWriteNode#name */
|
3224
|
+
pm_constant_id_t name;
|
3225
|
+
|
3226
|
+
/** LocalVariableAndWriteNode#depth */
|
3227
|
+
uint32_t depth;
|
3228
|
+
} pm_local_variable_and_write_node_t;
|
3229
|
+
|
3230
|
+
/**
|
3231
|
+
* LocalVariableOperatorWriteNode
|
3232
|
+
*
|
3233
|
+
* Type: PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
|
3234
|
+
*
|
3235
|
+
* @extends pm_node_t
|
3236
|
+
*/
|
3237
|
+
typedef struct pm_local_variable_operator_write_node {
|
3238
|
+
/** The embedded base node. */
|
3239
|
+
pm_node_t base;
|
3240
|
+
|
3241
|
+
/** LocalVariableOperatorWriteNode#name_loc */
|
3242
|
+
pm_location_t name_loc;
|
3243
|
+
|
3244
|
+
/** LocalVariableOperatorWriteNode#operator_loc */
|
3245
|
+
pm_location_t operator_loc;
|
3246
|
+
|
3247
|
+
/** LocalVariableOperatorWriteNode#value */
|
3248
|
+
struct pm_node *value;
|
3249
|
+
|
3250
|
+
/** LocalVariableOperatorWriteNode#name */
|
3251
|
+
pm_constant_id_t name;
|
3252
|
+
|
3253
|
+
/** LocalVariableOperatorWriteNode#operator */
|
3254
|
+
pm_constant_id_t operator;
|
3255
|
+
|
3256
|
+
/** LocalVariableOperatorWriteNode#depth */
|
3257
|
+
uint32_t depth;
|
3258
|
+
} pm_local_variable_operator_write_node_t;
|
3259
|
+
|
3260
|
+
/**
|
3261
|
+
* LocalVariableOrWriteNode
|
3262
|
+
*
|
3263
|
+
* Type: PM_LOCAL_VARIABLE_OR_WRITE_NODE
|
3264
|
+
*
|
3265
|
+
* @extends pm_node_t
|
3266
|
+
*/
|
3267
|
+
typedef struct pm_local_variable_or_write_node {
|
3268
|
+
/** The embedded base node. */
|
3269
|
+
pm_node_t base;
|
3270
|
+
|
3271
|
+
/** LocalVariableOrWriteNode#name_loc */
|
3272
|
+
pm_location_t name_loc;
|
3273
|
+
|
3274
|
+
/** LocalVariableOrWriteNode#operator_loc */
|
3275
|
+
pm_location_t operator_loc;
|
3276
|
+
|
3277
|
+
/** LocalVariableOrWriteNode#value */
|
3278
|
+
struct pm_node *value;
|
3279
|
+
|
3280
|
+
/** LocalVariableOrWriteNode#name */
|
3281
|
+
pm_constant_id_t name;
|
3282
|
+
|
3283
|
+
/** LocalVariableOrWriteNode#depth */
|
3284
|
+
uint32_t depth;
|
3285
|
+
} pm_local_variable_or_write_node_t;
|
3286
|
+
|
3287
|
+
/**
|
3288
|
+
* LocalVariableReadNode
|
3289
|
+
*
|
3290
|
+
* Type: PM_LOCAL_VARIABLE_READ_NODE
|
3291
|
+
*
|
3292
|
+
* @extends pm_node_t
|
3293
|
+
*/
|
3294
|
+
typedef struct pm_local_variable_read_node {
|
3295
|
+
/** The embedded base node. */
|
3296
|
+
pm_node_t base;
|
3297
|
+
|
3298
|
+
/** LocalVariableReadNode#name */
|
3299
|
+
pm_constant_id_t name;
|
3300
|
+
|
3301
|
+
/** LocalVariableReadNode#depth */
|
3302
|
+
uint32_t depth;
|
3303
|
+
} pm_local_variable_read_node_t;
|
3304
|
+
|
3305
|
+
/**
|
3306
|
+
* LocalVariableTargetNode
|
3307
|
+
*
|
3308
|
+
* Type: PM_LOCAL_VARIABLE_TARGET_NODE
|
3309
|
+
*
|
3310
|
+
* @extends pm_node_t
|
3311
|
+
*/
|
3312
|
+
typedef struct pm_local_variable_target_node {
|
3313
|
+
/** The embedded base node. */
|
3314
|
+
pm_node_t base;
|
3315
|
+
|
3316
|
+
/** LocalVariableTargetNode#name */
|
3317
|
+
pm_constant_id_t name;
|
3318
|
+
|
3319
|
+
/** LocalVariableTargetNode#depth */
|
3320
|
+
uint32_t depth;
|
3321
|
+
} pm_local_variable_target_node_t;
|
3322
|
+
|
3323
|
+
/**
|
3324
|
+
* LocalVariableWriteNode
|
3325
|
+
*
|
3326
|
+
* Type: PM_LOCAL_VARIABLE_WRITE_NODE
|
3327
|
+
*
|
3328
|
+
* @extends pm_node_t
|
3329
|
+
*/
|
3330
|
+
typedef struct pm_local_variable_write_node {
|
3331
|
+
/** The embedded base node. */
|
3332
|
+
pm_node_t base;
|
3333
|
+
|
3334
|
+
/** LocalVariableWriteNode#name */
|
3335
|
+
pm_constant_id_t name;
|
3336
|
+
|
3337
|
+
/** LocalVariableWriteNode#depth */
|
3338
|
+
uint32_t depth;
|
3339
|
+
|
3340
|
+
/** LocalVariableWriteNode#name_loc */
|
3341
|
+
pm_location_t name_loc;
|
3342
|
+
|
3343
|
+
/** LocalVariableWriteNode#value */
|
3344
|
+
struct pm_node *value;
|
3345
|
+
|
3346
|
+
/** LocalVariableWriteNode#operator_loc */
|
3347
|
+
pm_location_t operator_loc;
|
3348
|
+
} pm_local_variable_write_node_t;
|
3349
|
+
|
3350
|
+
/**
|
3351
|
+
* MatchLastLineNode
|
3352
|
+
*
|
3353
|
+
* Type: PM_MATCH_LAST_LINE_NODE
|
3354
|
+
* Flags:
|
3355
|
+
* PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
3356
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
3357
|
+
* PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
3358
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ONCE
|
3359
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
3360
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
3361
|
+
* PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
3362
|
+
* PM_REGULAR_EXPRESSION_FLAGS_UTF_8
|
3363
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
|
3364
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
|
3365
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
|
3366
|
+
*
|
3367
|
+
* @extends pm_node_t
|
3368
|
+
*/
|
3369
|
+
typedef struct pm_match_last_line_node {
|
3370
|
+
/** The embedded base node. */
|
3371
|
+
pm_node_t base;
|
3372
|
+
|
3373
|
+
/** MatchLastLineNode#opening_loc */
|
3374
|
+
pm_location_t opening_loc;
|
3375
|
+
|
3376
|
+
/** MatchLastLineNode#content_loc */
|
3377
|
+
pm_location_t content_loc;
|
3378
|
+
|
3379
|
+
/** MatchLastLineNode#closing_loc */
|
3380
|
+
pm_location_t closing_loc;
|
3381
|
+
|
3382
|
+
/** MatchLastLineNode#unescaped */
|
3383
|
+
pm_string_t unescaped;
|
3384
|
+
} pm_match_last_line_node_t;
|
3385
|
+
|
3386
|
+
/**
|
3387
|
+
* MatchPredicateNode
|
3388
|
+
*
|
3389
|
+
* Type: PM_MATCH_PREDICATE_NODE
|
3390
|
+
*
|
3391
|
+
* @extends pm_node_t
|
3392
|
+
*/
|
3393
|
+
typedef struct pm_match_predicate_node {
|
3394
|
+
/** The embedded base node. */
|
3395
|
+
pm_node_t base;
|
3396
|
+
|
3397
|
+
/** MatchPredicateNode#value */
|
3398
|
+
struct pm_node *value;
|
3399
|
+
|
3400
|
+
/** MatchPredicateNode#pattern */
|
3401
|
+
struct pm_node *pattern;
|
3402
|
+
|
3403
|
+
/** MatchPredicateNode#operator_loc */
|
3404
|
+
pm_location_t operator_loc;
|
3405
|
+
} pm_match_predicate_node_t;
|
3406
|
+
|
3407
|
+
/**
|
3408
|
+
* MatchRequiredNode
|
3409
|
+
*
|
3410
|
+
* Type: PM_MATCH_REQUIRED_NODE
|
3411
|
+
*
|
3412
|
+
* @extends pm_node_t
|
3413
|
+
*/
|
3414
|
+
typedef struct pm_match_required_node {
|
3415
|
+
/** The embedded base node. */
|
3416
|
+
pm_node_t base;
|
3417
|
+
|
3418
|
+
/** MatchRequiredNode#value */
|
3419
|
+
struct pm_node *value;
|
3420
|
+
|
3421
|
+
/** MatchRequiredNode#pattern */
|
3422
|
+
struct pm_node *pattern;
|
3423
|
+
|
3424
|
+
/** MatchRequiredNode#operator_loc */
|
3425
|
+
pm_location_t operator_loc;
|
3426
|
+
} pm_match_required_node_t;
|
3427
|
+
|
3428
|
+
/**
|
3429
|
+
* MatchWriteNode
|
3430
|
+
*
|
3431
|
+
* Type: PM_MATCH_WRITE_NODE
|
3432
|
+
*
|
3433
|
+
* @extends pm_node_t
|
3434
|
+
*/
|
3435
|
+
typedef struct pm_match_write_node {
|
3436
|
+
/** The embedded base node. */
|
3437
|
+
pm_node_t base;
|
3438
|
+
|
3439
|
+
/** MatchWriteNode#call */
|
3440
|
+
struct pm_call_node *call;
|
3441
|
+
|
3442
|
+
/** MatchWriteNode#targets */
|
3443
|
+
struct pm_node_list targets;
|
3444
|
+
} pm_match_write_node_t;
|
3445
|
+
|
3446
|
+
/**
|
3447
|
+
* MissingNode
|
3448
|
+
*
|
3449
|
+
* Type: PM_MISSING_NODE
|
3450
|
+
*
|
3451
|
+
* @extends pm_node_t
|
3452
|
+
*/
|
3453
|
+
typedef struct pm_missing_node {
|
3454
|
+
/** The embedded base node. */
|
3455
|
+
pm_node_t base;
|
3456
|
+
} pm_missing_node_t;
|
3457
|
+
|
3458
|
+
/**
|
3459
|
+
* ModuleNode
|
3460
|
+
*
|
3461
|
+
* Type: PM_MODULE_NODE
|
3462
|
+
*
|
3463
|
+
* @extends pm_node_t
|
3464
|
+
*/
|
3465
|
+
typedef struct pm_module_node {
|
3466
|
+
/** The embedded base node. */
|
3467
|
+
pm_node_t base;
|
3468
|
+
|
3469
|
+
/** ModuleNode#locals */
|
3470
|
+
pm_constant_id_list_t locals;
|
3471
|
+
|
3472
|
+
/** ModuleNode#module_keyword_loc */
|
3473
|
+
pm_location_t module_keyword_loc;
|
3474
|
+
|
3475
|
+
/** ModuleNode#constant_path */
|
3476
|
+
struct pm_node *constant_path;
|
3477
|
+
|
3478
|
+
/** ModuleNode#body */
|
3479
|
+
struct pm_node *body;
|
3480
|
+
|
3481
|
+
/** ModuleNode#end_keyword_loc */
|
3482
|
+
pm_location_t end_keyword_loc;
|
3483
|
+
|
3484
|
+
/** ModuleNode#name */
|
3485
|
+
pm_constant_id_t name;
|
3486
|
+
} pm_module_node_t;
|
3487
|
+
|
3488
|
+
/**
|
3489
|
+
* MultiTargetNode
|
3490
|
+
*
|
3491
|
+
* Type: PM_MULTI_TARGET_NODE
|
3492
|
+
*
|
3493
|
+
* @extends pm_node_t
|
3494
|
+
*/
|
3495
|
+
typedef struct pm_multi_target_node {
|
3496
|
+
/** The embedded base node. */
|
3497
|
+
pm_node_t base;
|
3498
|
+
|
3499
|
+
/** MultiTargetNode#lefts */
|
3500
|
+
struct pm_node_list lefts;
|
3501
|
+
|
3502
|
+
/** MultiTargetNode#rest */
|
3503
|
+
struct pm_node *rest;
|
3504
|
+
|
3505
|
+
/** MultiTargetNode#rights */
|
3506
|
+
struct pm_node_list rights;
|
3507
|
+
|
3508
|
+
/** MultiTargetNode#lparen_loc */
|
3509
|
+
pm_location_t lparen_loc;
|
3510
|
+
|
3511
|
+
/** MultiTargetNode#rparen_loc */
|
3512
|
+
pm_location_t rparen_loc;
|
3513
|
+
} pm_multi_target_node_t;
|
3514
|
+
|
3515
|
+
/**
|
3516
|
+
* MultiWriteNode
|
3517
|
+
*
|
3518
|
+
* Type: PM_MULTI_WRITE_NODE
|
3519
|
+
*
|
3520
|
+
* @extends pm_node_t
|
3521
|
+
*/
|
3522
|
+
typedef struct pm_multi_write_node {
|
3523
|
+
/** The embedded base node. */
|
3524
|
+
pm_node_t base;
|
3525
|
+
|
3526
|
+
/** MultiWriteNode#lefts */
|
3527
|
+
struct pm_node_list lefts;
|
3528
|
+
|
3529
|
+
/** MultiWriteNode#rest */
|
3530
|
+
struct pm_node *rest;
|
3531
|
+
|
3532
|
+
/** MultiWriteNode#rights */
|
3533
|
+
struct pm_node_list rights;
|
3534
|
+
|
3535
|
+
/** MultiWriteNode#lparen_loc */
|
3536
|
+
pm_location_t lparen_loc;
|
3537
|
+
|
3538
|
+
/** MultiWriteNode#rparen_loc */
|
3539
|
+
pm_location_t rparen_loc;
|
3540
|
+
|
3541
|
+
/** MultiWriteNode#operator_loc */
|
3542
|
+
pm_location_t operator_loc;
|
3543
|
+
|
3544
|
+
/** MultiWriteNode#value */
|
3545
|
+
struct pm_node *value;
|
3546
|
+
} pm_multi_write_node_t;
|
3547
|
+
|
3548
|
+
/**
|
3549
|
+
* NextNode
|
3550
|
+
*
|
3551
|
+
* Type: PM_NEXT_NODE
|
3552
|
+
*
|
3553
|
+
* @extends pm_node_t
|
3554
|
+
*/
|
3555
|
+
typedef struct pm_next_node {
|
3556
|
+
/** The embedded base node. */
|
3557
|
+
pm_node_t base;
|
3558
|
+
|
3559
|
+
/** NextNode#arguments */
|
3560
|
+
struct pm_arguments_node *arguments;
|
3561
|
+
|
3562
|
+
/** NextNode#keyword_loc */
|
3563
|
+
pm_location_t keyword_loc;
|
3564
|
+
} pm_next_node_t;
|
3565
|
+
|
3566
|
+
/**
|
3567
|
+
* NilNode
|
3568
|
+
*
|
3569
|
+
* Type: PM_NIL_NODE
|
3570
|
+
*
|
3571
|
+
* @extends pm_node_t
|
3572
|
+
*/
|
3573
|
+
typedef struct pm_nil_node {
|
3574
|
+
/** The embedded base node. */
|
3575
|
+
pm_node_t base;
|
3576
|
+
} pm_nil_node_t;
|
3577
|
+
|
3578
|
+
/**
|
3579
|
+
* NoKeywordsParameterNode
|
3580
|
+
*
|
3581
|
+
* Type: PM_NO_KEYWORDS_PARAMETER_NODE
|
3582
|
+
*
|
3583
|
+
* @extends pm_node_t
|
3584
|
+
*/
|
3585
|
+
typedef struct pm_no_keywords_parameter_node {
|
3586
|
+
/** The embedded base node. */
|
3587
|
+
pm_node_t base;
|
3588
|
+
|
3589
|
+
/** NoKeywordsParameterNode#operator_loc */
|
3590
|
+
pm_location_t operator_loc;
|
3591
|
+
|
3592
|
+
/** NoKeywordsParameterNode#keyword_loc */
|
3593
|
+
pm_location_t keyword_loc;
|
3594
|
+
} pm_no_keywords_parameter_node_t;
|
3595
|
+
|
3596
|
+
/**
|
3597
|
+
* NumberedParametersNode
|
3598
|
+
*
|
3599
|
+
* Type: PM_NUMBERED_PARAMETERS_NODE
|
3600
|
+
*
|
3601
|
+
* @extends pm_node_t
|
3602
|
+
*/
|
3603
|
+
typedef struct pm_numbered_parameters_node {
|
3604
|
+
/** The embedded base node. */
|
3605
|
+
pm_node_t base;
|
3606
|
+
|
3607
|
+
/** NumberedParametersNode#maximum */
|
3608
|
+
uint8_t maximum;
|
3609
|
+
} pm_numbered_parameters_node_t;
|
3610
|
+
|
3611
|
+
/**
|
3612
|
+
* NumberedReferenceReadNode
|
3613
|
+
*
|
3614
|
+
* Type: PM_NUMBERED_REFERENCE_READ_NODE
|
3615
|
+
*
|
3616
|
+
* @extends pm_node_t
|
3617
|
+
*/
|
3618
|
+
typedef struct pm_numbered_reference_read_node {
|
3619
|
+
/** The embedded base node. */
|
3620
|
+
pm_node_t base;
|
3621
|
+
|
3622
|
+
/** NumberedReferenceReadNode#number */
|
3623
|
+
uint32_t number;
|
3624
|
+
} pm_numbered_reference_read_node_t;
|
3625
|
+
|
3626
|
+
/**
|
3627
|
+
* OptionalKeywordParameterNode
|
3628
|
+
*
|
3629
|
+
* Type: PM_OPTIONAL_KEYWORD_PARAMETER_NODE
|
3630
|
+
*
|
3631
|
+
* @extends pm_node_t
|
3632
|
+
*/
|
3633
|
+
typedef struct pm_optional_keyword_parameter_node {
|
3634
|
+
/** The embedded base node. */
|
3635
|
+
pm_node_t base;
|
3636
|
+
|
3637
|
+
/** OptionalKeywordParameterNode#name */
|
3638
|
+
pm_constant_id_t name;
|
3639
|
+
|
3640
|
+
/** OptionalKeywordParameterNode#name_loc */
|
3641
|
+
pm_location_t name_loc;
|
3642
|
+
|
3643
|
+
/** OptionalKeywordParameterNode#value */
|
3644
|
+
struct pm_node *value;
|
3645
|
+
} pm_optional_keyword_parameter_node_t;
|
3646
|
+
|
3647
|
+
/**
|
3648
|
+
* OptionalParameterNode
|
3649
|
+
*
|
3650
|
+
* Type: PM_OPTIONAL_PARAMETER_NODE
|
3651
|
+
*
|
3652
|
+
* @extends pm_node_t
|
3653
|
+
*/
|
3654
|
+
typedef struct pm_optional_parameter_node {
|
3655
|
+
/** The embedded base node. */
|
3656
|
+
pm_node_t base;
|
3657
|
+
|
3658
|
+
/** OptionalParameterNode#name */
|
3659
|
+
pm_constant_id_t name;
|
3660
|
+
|
3661
|
+
/** OptionalParameterNode#name_loc */
|
3662
|
+
pm_location_t name_loc;
|
3663
|
+
|
3664
|
+
/** OptionalParameterNode#operator_loc */
|
3665
|
+
pm_location_t operator_loc;
|
3666
|
+
|
3667
|
+
/** OptionalParameterNode#value */
|
3668
|
+
struct pm_node *value;
|
3669
|
+
} pm_optional_parameter_node_t;
|
3670
|
+
|
3671
|
+
/**
|
3672
|
+
* OrNode
|
3673
|
+
*
|
3674
|
+
* Type: PM_OR_NODE
|
3675
|
+
*
|
3676
|
+
* @extends pm_node_t
|
3677
|
+
*/
|
3678
|
+
typedef struct pm_or_node {
|
3679
|
+
/** The embedded base node. */
|
3680
|
+
pm_node_t base;
|
3681
|
+
|
3682
|
+
/** OrNode#left */
|
3683
|
+
struct pm_node *left;
|
3684
|
+
|
3685
|
+
/** OrNode#right */
|
3686
|
+
struct pm_node *right;
|
3687
|
+
|
3688
|
+
/** OrNode#operator_loc */
|
3689
|
+
pm_location_t operator_loc;
|
3690
|
+
} pm_or_node_t;
|
3691
|
+
|
3692
|
+
/**
|
3693
|
+
* ParametersNode
|
3694
|
+
*
|
3695
|
+
* Type: PM_PARAMETERS_NODE
|
3696
|
+
*
|
3697
|
+
* @extends pm_node_t
|
3698
|
+
*/
|
3699
|
+
typedef struct pm_parameters_node {
|
3700
|
+
/** The embedded base node. */
|
3701
|
+
pm_node_t base;
|
3702
|
+
|
3703
|
+
/** ParametersNode#requireds */
|
3704
|
+
struct pm_node_list requireds;
|
3705
|
+
|
3706
|
+
/** ParametersNode#optionals */
|
3707
|
+
struct pm_node_list optionals;
|
3708
|
+
|
3709
|
+
/** ParametersNode#rest */
|
3710
|
+
struct pm_node *rest;
|
3711
|
+
|
3712
|
+
/** ParametersNode#posts */
|
3713
|
+
struct pm_node_list posts;
|
3714
|
+
|
3715
|
+
/** ParametersNode#keywords */
|
3716
|
+
struct pm_node_list keywords;
|
3717
|
+
|
3718
|
+
/** ParametersNode#keyword_rest */
|
3719
|
+
struct pm_node *keyword_rest;
|
3720
|
+
|
3721
|
+
/** ParametersNode#block */
|
3722
|
+
struct pm_block_parameter_node *block;
|
3723
|
+
} pm_parameters_node_t;
|
3724
|
+
|
3725
|
+
/**
|
3726
|
+
* ParenthesesNode
|
3727
|
+
*
|
3728
|
+
* Type: PM_PARENTHESES_NODE
|
3729
|
+
*
|
3730
|
+
* @extends pm_node_t
|
3731
|
+
*/
|
3732
|
+
typedef struct pm_parentheses_node {
|
3733
|
+
/** The embedded base node. */
|
3734
|
+
pm_node_t base;
|
3735
|
+
|
3736
|
+
/** ParenthesesNode#body */
|
3737
|
+
struct pm_node *body;
|
3738
|
+
|
3739
|
+
/** ParenthesesNode#opening_loc */
|
3740
|
+
pm_location_t opening_loc;
|
3741
|
+
|
3742
|
+
/** ParenthesesNode#closing_loc */
|
3743
|
+
pm_location_t closing_loc;
|
3744
|
+
} pm_parentheses_node_t;
|
3745
|
+
|
3746
|
+
/**
|
3747
|
+
* PinnedExpressionNode
|
3748
|
+
*
|
3749
|
+
* Type: PM_PINNED_EXPRESSION_NODE
|
3750
|
+
*
|
3751
|
+
* @extends pm_node_t
|
3752
|
+
*/
|
3753
|
+
typedef struct pm_pinned_expression_node {
|
3754
|
+
/** The embedded base node. */
|
3755
|
+
pm_node_t base;
|
3756
|
+
|
3757
|
+
/** PinnedExpressionNode#expression */
|
3758
|
+
struct pm_node *expression;
|
3759
|
+
|
3760
|
+
/** PinnedExpressionNode#operator_loc */
|
3761
|
+
pm_location_t operator_loc;
|
3762
|
+
|
3763
|
+
/** PinnedExpressionNode#lparen_loc */
|
3764
|
+
pm_location_t lparen_loc;
|
3765
|
+
|
3766
|
+
/** PinnedExpressionNode#rparen_loc */
|
3767
|
+
pm_location_t rparen_loc;
|
3768
|
+
} pm_pinned_expression_node_t;
|
3769
|
+
|
3770
|
+
/**
|
3771
|
+
* PinnedVariableNode
|
3772
|
+
*
|
3773
|
+
* Type: PM_PINNED_VARIABLE_NODE
|
3774
|
+
*
|
3775
|
+
* @extends pm_node_t
|
3776
|
+
*/
|
3777
|
+
typedef struct pm_pinned_variable_node {
|
3778
|
+
/** The embedded base node. */
|
3779
|
+
pm_node_t base;
|
3780
|
+
|
3781
|
+
/** PinnedVariableNode#variable */
|
3782
|
+
struct pm_node *variable;
|
3783
|
+
|
3784
|
+
/** PinnedVariableNode#operator_loc */
|
3785
|
+
pm_location_t operator_loc;
|
3786
|
+
} pm_pinned_variable_node_t;
|
3787
|
+
|
3788
|
+
/**
|
3789
|
+
* PostExecutionNode
|
3790
|
+
*
|
3791
|
+
* Type: PM_POST_EXECUTION_NODE
|
3792
|
+
*
|
3793
|
+
* @extends pm_node_t
|
3794
|
+
*/
|
3795
|
+
typedef struct pm_post_execution_node {
|
3796
|
+
/** The embedded base node. */
|
3797
|
+
pm_node_t base;
|
3798
|
+
|
3799
|
+
/** PostExecutionNode#statements */
|
3800
|
+
struct pm_statements_node *statements;
|
3801
|
+
|
3802
|
+
/** PostExecutionNode#keyword_loc */
|
3803
|
+
pm_location_t keyword_loc;
|
3804
|
+
|
3805
|
+
/** PostExecutionNode#opening_loc */
|
3806
|
+
pm_location_t opening_loc;
|
3807
|
+
|
3808
|
+
/** PostExecutionNode#closing_loc */
|
3809
|
+
pm_location_t closing_loc;
|
3810
|
+
} pm_post_execution_node_t;
|
3811
|
+
|
3812
|
+
/**
|
3813
|
+
* PreExecutionNode
|
3814
|
+
*
|
3815
|
+
* Type: PM_PRE_EXECUTION_NODE
|
3816
|
+
*
|
3817
|
+
* @extends pm_node_t
|
3818
|
+
*/
|
3819
|
+
typedef struct pm_pre_execution_node {
|
3820
|
+
/** The embedded base node. */
|
3821
|
+
pm_node_t base;
|
3822
|
+
|
3823
|
+
/** PreExecutionNode#statements */
|
3824
|
+
struct pm_statements_node *statements;
|
3825
|
+
|
3826
|
+
/** PreExecutionNode#keyword_loc */
|
3827
|
+
pm_location_t keyword_loc;
|
3828
|
+
|
3829
|
+
/** PreExecutionNode#opening_loc */
|
3830
|
+
pm_location_t opening_loc;
|
3831
|
+
|
3832
|
+
/** PreExecutionNode#closing_loc */
|
3833
|
+
pm_location_t closing_loc;
|
3834
|
+
} pm_pre_execution_node_t;
|
3835
|
+
|
3836
|
+
/**
|
3837
|
+
* ProgramNode
|
3838
|
+
*
|
3839
|
+
* Type: PM_PROGRAM_NODE
|
3840
|
+
*
|
3841
|
+
* @extends pm_node_t
|
3842
|
+
*/
|
3843
|
+
typedef struct pm_program_node {
|
3844
|
+
/** The embedded base node. */
|
3845
|
+
pm_node_t base;
|
3846
|
+
|
3847
|
+
/** ProgramNode#locals */
|
3848
|
+
pm_constant_id_list_t locals;
|
3849
|
+
|
3850
|
+
/** ProgramNode#statements */
|
3851
|
+
struct pm_statements_node *statements;
|
3852
|
+
} pm_program_node_t;
|
3853
|
+
|
3854
|
+
/**
|
3855
|
+
* RangeNode
|
3856
|
+
*
|
3857
|
+
* Type: PM_RANGE_NODE
|
3858
|
+
* Flags:
|
3859
|
+
* PM_RANGE_FLAGS_EXCLUDE_END
|
3860
|
+
*
|
3861
|
+
* @extends pm_node_t
|
3862
|
+
*/
|
3863
|
+
typedef struct pm_range_node {
|
3864
|
+
/** The embedded base node. */
|
3865
|
+
pm_node_t base;
|
3866
|
+
|
3867
|
+
/** RangeNode#left */
|
3868
|
+
struct pm_node *left;
|
3869
|
+
|
3870
|
+
/** RangeNode#right */
|
3871
|
+
struct pm_node *right;
|
3872
|
+
|
3873
|
+
/** RangeNode#operator_loc */
|
3874
|
+
pm_location_t operator_loc;
|
3875
|
+
} pm_range_node_t;
|
3876
|
+
|
3877
|
+
/**
|
3878
|
+
* RationalNode
|
3879
|
+
*
|
3880
|
+
* Type: PM_RATIONAL_NODE
|
3881
|
+
*
|
3882
|
+
* @extends pm_node_t
|
3883
|
+
*/
|
3884
|
+
typedef struct pm_rational_node {
|
3885
|
+
/** The embedded base node. */
|
3886
|
+
pm_node_t base;
|
3887
|
+
|
3888
|
+
/** RationalNode#numeric */
|
3889
|
+
struct pm_node *numeric;
|
3890
|
+
} pm_rational_node_t;
|
3891
|
+
|
3892
|
+
/**
|
3893
|
+
* RedoNode
|
3894
|
+
*
|
3895
|
+
* Type: PM_REDO_NODE
|
3896
|
+
*
|
3897
|
+
* @extends pm_node_t
|
3898
|
+
*/
|
3899
|
+
typedef struct pm_redo_node {
|
3900
|
+
/** The embedded base node. */
|
3901
|
+
pm_node_t base;
|
3902
|
+
} pm_redo_node_t;
|
3903
|
+
|
3904
|
+
/**
|
3905
|
+
* RegularExpressionNode
|
3906
|
+
*
|
3907
|
+
* Type: PM_REGULAR_EXPRESSION_NODE
|
3908
|
+
* Flags:
|
3909
|
+
* PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
3910
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
3911
|
+
* PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
3912
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ONCE
|
3913
|
+
* PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
3914
|
+
* PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
3915
|
+
* PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
3916
|
+
* PM_REGULAR_EXPRESSION_FLAGS_UTF_8
|
3917
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
|
3918
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
|
3919
|
+
* PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
|
3920
|
+
*
|
3921
|
+
* @extends pm_node_t
|
3922
|
+
*/
|
3923
|
+
typedef struct pm_regular_expression_node {
|
3924
|
+
/** The embedded base node. */
|
3925
|
+
pm_node_t base;
|
3926
|
+
|
3927
|
+
/** RegularExpressionNode#opening_loc */
|
3928
|
+
pm_location_t opening_loc;
|
3929
|
+
|
3930
|
+
/** RegularExpressionNode#content_loc */
|
3931
|
+
pm_location_t content_loc;
|
3932
|
+
|
3933
|
+
/** RegularExpressionNode#closing_loc */
|
3934
|
+
pm_location_t closing_loc;
|
3935
|
+
|
3936
|
+
/** RegularExpressionNode#unescaped */
|
3937
|
+
pm_string_t unescaped;
|
3938
|
+
} pm_regular_expression_node_t;
|
3939
|
+
|
3940
|
+
/**
|
3941
|
+
* RequiredKeywordParameterNode
|
3942
|
+
*
|
3943
|
+
* Type: PM_REQUIRED_KEYWORD_PARAMETER_NODE
|
3944
|
+
*
|
3945
|
+
* @extends pm_node_t
|
3946
|
+
*/
|
3947
|
+
typedef struct pm_required_keyword_parameter_node {
|
3948
|
+
/** The embedded base node. */
|
3949
|
+
pm_node_t base;
|
3950
|
+
|
3951
|
+
/** RequiredKeywordParameterNode#name */
|
3952
|
+
pm_constant_id_t name;
|
3953
|
+
|
3954
|
+
/** RequiredKeywordParameterNode#name_loc */
|
3955
|
+
pm_location_t name_loc;
|
3956
|
+
} pm_required_keyword_parameter_node_t;
|
3957
|
+
|
3958
|
+
/**
|
3959
|
+
* RequiredParameterNode
|
3960
|
+
*
|
3961
|
+
* Type: PM_REQUIRED_PARAMETER_NODE
|
3962
|
+
*
|
3963
|
+
* @extends pm_node_t
|
3964
|
+
*/
|
3965
|
+
typedef struct pm_required_parameter_node {
|
3966
|
+
/** The embedded base node. */
|
3967
|
+
pm_node_t base;
|
3968
|
+
|
3969
|
+
/** RequiredParameterNode#name */
|
3970
|
+
pm_constant_id_t name;
|
3971
|
+
} pm_required_parameter_node_t;
|
3972
|
+
|
3973
|
+
/**
|
3974
|
+
* RescueModifierNode
|
3975
|
+
*
|
3976
|
+
* Type: PM_RESCUE_MODIFIER_NODE
|
3977
|
+
*
|
3978
|
+
* @extends pm_node_t
|
3979
|
+
*/
|
3980
|
+
typedef struct pm_rescue_modifier_node {
|
3981
|
+
/** The embedded base node. */
|
3982
|
+
pm_node_t base;
|
3983
|
+
|
3984
|
+
/** RescueModifierNode#expression */
|
3985
|
+
struct pm_node *expression;
|
3986
|
+
|
3987
|
+
/** RescueModifierNode#keyword_loc */
|
3988
|
+
pm_location_t keyword_loc;
|
3989
|
+
|
3990
|
+
/** RescueModifierNode#rescue_expression */
|
3991
|
+
struct pm_node *rescue_expression;
|
3992
|
+
} pm_rescue_modifier_node_t;
|
3993
|
+
|
3994
|
+
/**
|
3995
|
+
* RescueNode
|
3996
|
+
*
|
3997
|
+
* Type: PM_RESCUE_NODE
|
3998
|
+
*
|
3999
|
+
* @extends pm_node_t
|
4000
|
+
*/
|
4001
|
+
typedef struct pm_rescue_node {
|
4002
|
+
/** The embedded base node. */
|
4003
|
+
pm_node_t base;
|
4004
|
+
|
4005
|
+
/** RescueNode#keyword_loc */
|
4006
|
+
pm_location_t keyword_loc;
|
4007
|
+
|
4008
|
+
/** RescueNode#exceptions */
|
4009
|
+
struct pm_node_list exceptions;
|
4010
|
+
|
4011
|
+
/** RescueNode#operator_loc */
|
4012
|
+
pm_location_t operator_loc;
|
4013
|
+
|
4014
|
+
/** RescueNode#reference */
|
4015
|
+
struct pm_node *reference;
|
4016
|
+
|
4017
|
+
/** RescueNode#statements */
|
4018
|
+
struct pm_statements_node *statements;
|
4019
|
+
|
4020
|
+
/** RescueNode#consequent */
|
4021
|
+
struct pm_rescue_node *consequent;
|
4022
|
+
} pm_rescue_node_t;
|
4023
|
+
|
4024
|
+
/**
|
4025
|
+
* RestParameterNode
|
4026
|
+
*
|
4027
|
+
* Type: PM_REST_PARAMETER_NODE
|
4028
|
+
*
|
4029
|
+
* @extends pm_node_t
|
4030
|
+
*/
|
4031
|
+
typedef struct pm_rest_parameter_node {
|
4032
|
+
/** The embedded base node. */
|
4033
|
+
pm_node_t base;
|
4034
|
+
|
4035
|
+
/** RestParameterNode#name */
|
4036
|
+
pm_constant_id_t name;
|
4037
|
+
|
4038
|
+
/** RestParameterNode#name_loc */
|
4039
|
+
pm_location_t name_loc;
|
4040
|
+
|
4041
|
+
/** RestParameterNode#operator_loc */
|
4042
|
+
pm_location_t operator_loc;
|
4043
|
+
} pm_rest_parameter_node_t;
|
4044
|
+
|
4045
|
+
/**
|
4046
|
+
* RetryNode
|
4047
|
+
*
|
4048
|
+
* Type: PM_RETRY_NODE
|
4049
|
+
*
|
4050
|
+
* @extends pm_node_t
|
4051
|
+
*/
|
4052
|
+
typedef struct pm_retry_node {
|
4053
|
+
/** The embedded base node. */
|
4054
|
+
pm_node_t base;
|
4055
|
+
} pm_retry_node_t;
|
4056
|
+
|
4057
|
+
/**
|
4058
|
+
* ReturnNode
|
4059
|
+
*
|
4060
|
+
* Type: PM_RETURN_NODE
|
4061
|
+
*
|
4062
|
+
* @extends pm_node_t
|
4063
|
+
*/
|
4064
|
+
typedef struct pm_return_node {
|
4065
|
+
/** The embedded base node. */
|
4066
|
+
pm_node_t base;
|
4067
|
+
|
4068
|
+
/** ReturnNode#keyword_loc */
|
4069
|
+
pm_location_t keyword_loc;
|
4070
|
+
|
4071
|
+
/** ReturnNode#arguments */
|
4072
|
+
struct pm_arguments_node *arguments;
|
4073
|
+
} pm_return_node_t;
|
4074
|
+
|
4075
|
+
/**
|
4076
|
+
* SelfNode
|
4077
|
+
*
|
4078
|
+
* Type: PM_SELF_NODE
|
4079
|
+
*
|
4080
|
+
* @extends pm_node_t
|
4081
|
+
*/
|
4082
|
+
typedef struct pm_self_node {
|
4083
|
+
/** The embedded base node. */
|
4084
|
+
pm_node_t base;
|
4085
|
+
} pm_self_node_t;
|
4086
|
+
|
4087
|
+
/**
|
4088
|
+
* SingletonClassNode
|
4089
|
+
*
|
4090
|
+
* Type: PM_SINGLETON_CLASS_NODE
|
4091
|
+
*
|
4092
|
+
* @extends pm_node_t
|
4093
|
+
*/
|
4094
|
+
typedef struct pm_singleton_class_node {
|
4095
|
+
/** The embedded base node. */
|
4096
|
+
pm_node_t base;
|
4097
|
+
|
4098
|
+
/** SingletonClassNode#locals */
|
4099
|
+
pm_constant_id_list_t locals;
|
4100
|
+
|
4101
|
+
/** SingletonClassNode#class_keyword_loc */
|
4102
|
+
pm_location_t class_keyword_loc;
|
4103
|
+
|
4104
|
+
/** SingletonClassNode#operator_loc */
|
4105
|
+
pm_location_t operator_loc;
|
4106
|
+
|
4107
|
+
/** SingletonClassNode#expression */
|
4108
|
+
struct pm_node *expression;
|
4109
|
+
|
4110
|
+
/** SingletonClassNode#body */
|
4111
|
+
struct pm_node *body;
|
4112
|
+
|
4113
|
+
/** SingletonClassNode#end_keyword_loc */
|
4114
|
+
pm_location_t end_keyword_loc;
|
4115
|
+
} pm_singleton_class_node_t;
|
4116
|
+
|
4117
|
+
/**
|
4118
|
+
* SourceEncodingNode
|
4119
|
+
*
|
4120
|
+
* Type: PM_SOURCE_ENCODING_NODE
|
4121
|
+
*
|
4122
|
+
* @extends pm_node_t
|
4123
|
+
*/
|
4124
|
+
typedef struct pm_source_encoding_node {
|
4125
|
+
/** The embedded base node. */
|
4126
|
+
pm_node_t base;
|
4127
|
+
} pm_source_encoding_node_t;
|
4128
|
+
|
4129
|
+
/**
|
4130
|
+
* SourceFileNode
|
4131
|
+
*
|
4132
|
+
* Type: PM_SOURCE_FILE_NODE
|
4133
|
+
*
|
4134
|
+
* @extends pm_node_t
|
4135
|
+
*/
|
4136
|
+
typedef struct pm_source_file_node {
|
4137
|
+
/** The embedded base node. */
|
4138
|
+
pm_node_t base;
|
4139
|
+
|
4140
|
+
/** SourceFileNode#filepath */
|
4141
|
+
pm_string_t filepath;
|
4142
|
+
} pm_source_file_node_t;
|
4143
|
+
|
4144
|
+
/**
|
4145
|
+
* SourceLineNode
|
4146
|
+
*
|
4147
|
+
* Type: PM_SOURCE_LINE_NODE
|
4148
|
+
*
|
4149
|
+
* @extends pm_node_t
|
4150
|
+
*/
|
4151
|
+
typedef struct pm_source_line_node {
|
4152
|
+
/** The embedded base node. */
|
4153
|
+
pm_node_t base;
|
4154
|
+
} pm_source_line_node_t;
|
4155
|
+
|
4156
|
+
/**
|
4157
|
+
* SplatNode
|
4158
|
+
*
|
4159
|
+
* Type: PM_SPLAT_NODE
|
4160
|
+
*
|
4161
|
+
* @extends pm_node_t
|
4162
|
+
*/
|
4163
|
+
typedef struct pm_splat_node {
|
4164
|
+
/** The embedded base node. */
|
4165
|
+
pm_node_t base;
|
4166
|
+
|
4167
|
+
/** SplatNode#operator_loc */
|
4168
|
+
pm_location_t operator_loc;
|
4169
|
+
|
4170
|
+
/** SplatNode#expression */
|
4171
|
+
struct pm_node *expression;
|
4172
|
+
} pm_splat_node_t;
|
4173
|
+
|
4174
|
+
/**
|
4175
|
+
* StatementsNode
|
4176
|
+
*
|
4177
|
+
* Type: PM_STATEMENTS_NODE
|
4178
|
+
*
|
4179
|
+
* @extends pm_node_t
|
4180
|
+
*/
|
4181
|
+
typedef struct pm_statements_node {
|
4182
|
+
/** The embedded base node. */
|
4183
|
+
pm_node_t base;
|
4184
|
+
|
4185
|
+
/** StatementsNode#body */
|
4186
|
+
struct pm_node_list body;
|
4187
|
+
} pm_statements_node_t;
|
4188
|
+
|
4189
|
+
/**
|
4190
|
+
* StringNode
|
4191
|
+
*
|
4192
|
+
* Type: PM_STRING_NODE
|
4193
|
+
* Flags:
|
4194
|
+
* PM_STRING_FLAGS_FORCED_UTF8_ENCODING
|
4195
|
+
* PM_STRING_FLAGS_FORCED_BINARY_ENCODING
|
4196
|
+
* PM_STRING_FLAGS_FROZEN
|
4197
|
+
*
|
4198
|
+
* @extends pm_node_t
|
4199
|
+
*/
|
4200
|
+
typedef struct pm_string_node {
|
4201
|
+
/** The embedded base node. */
|
4202
|
+
pm_node_t base;
|
4203
|
+
|
4204
|
+
/** StringNode#opening_loc */
|
4205
|
+
pm_location_t opening_loc;
|
4206
|
+
|
4207
|
+
/** StringNode#content_loc */
|
4208
|
+
pm_location_t content_loc;
|
4209
|
+
|
4210
|
+
/** StringNode#closing_loc */
|
4211
|
+
pm_location_t closing_loc;
|
4212
|
+
|
4213
|
+
/** StringNode#unescaped */
|
4214
|
+
pm_string_t unescaped;
|
4215
|
+
} pm_string_node_t;
|
4216
|
+
|
4217
|
+
/**
|
4218
|
+
* SuperNode
|
4219
|
+
*
|
4220
|
+
* Type: PM_SUPER_NODE
|
4221
|
+
*
|
4222
|
+
* @extends pm_node_t
|
4223
|
+
*/
|
4224
|
+
typedef struct pm_super_node {
|
4225
|
+
/** The embedded base node. */
|
4226
|
+
pm_node_t base;
|
4227
|
+
|
4228
|
+
/** SuperNode#keyword_loc */
|
4229
|
+
pm_location_t keyword_loc;
|
4230
|
+
|
4231
|
+
/** SuperNode#lparen_loc */
|
4232
|
+
pm_location_t lparen_loc;
|
4233
|
+
|
4234
|
+
/** SuperNode#arguments */
|
4235
|
+
struct pm_arguments_node *arguments;
|
4236
|
+
|
4237
|
+
/** SuperNode#rparen_loc */
|
4238
|
+
pm_location_t rparen_loc;
|
4239
|
+
|
4240
|
+
/** SuperNode#block */
|
4241
|
+
struct pm_node *block;
|
4242
|
+
} pm_super_node_t;
|
4243
|
+
|
4244
|
+
/**
|
4245
|
+
* SymbolNode
|
4246
|
+
*
|
4247
|
+
* Type: PM_SYMBOL_NODE
|
4248
|
+
* Flags:
|
4249
|
+
* PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
|
4250
|
+
* PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
|
4251
|
+
* PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
|
4252
|
+
*
|
4253
|
+
* @extends pm_node_t
|
4254
|
+
*/
|
4255
|
+
typedef struct pm_symbol_node {
|
4256
|
+
/** The embedded base node. */
|
4257
|
+
pm_node_t base;
|
4258
|
+
|
4259
|
+
/** SymbolNode#opening_loc */
|
4260
|
+
pm_location_t opening_loc;
|
4261
|
+
|
4262
|
+
/** SymbolNode#value_loc */
|
4263
|
+
pm_location_t value_loc;
|
4264
|
+
|
4265
|
+
/** SymbolNode#closing_loc */
|
4266
|
+
pm_location_t closing_loc;
|
4267
|
+
|
4268
|
+
/** SymbolNode#unescaped */
|
4269
|
+
pm_string_t unescaped;
|
4270
|
+
} pm_symbol_node_t;
|
4271
|
+
|
4272
|
+
/**
|
4273
|
+
* TrueNode
|
4274
|
+
*
|
4275
|
+
* Type: PM_TRUE_NODE
|
4276
|
+
*
|
4277
|
+
* @extends pm_node_t
|
4278
|
+
*/
|
4279
|
+
typedef struct pm_true_node {
|
4280
|
+
/** The embedded base node. */
|
4281
|
+
pm_node_t base;
|
4282
|
+
} pm_true_node_t;
|
4283
|
+
|
4284
|
+
/**
|
4285
|
+
* UndefNode
|
4286
|
+
*
|
4287
|
+
* Type: PM_UNDEF_NODE
|
4288
|
+
*
|
4289
|
+
* @extends pm_node_t
|
4290
|
+
*/
|
4291
|
+
typedef struct pm_undef_node {
|
4292
|
+
/** The embedded base node. */
|
4293
|
+
pm_node_t base;
|
4294
|
+
|
4295
|
+
/** UndefNode#names */
|
4296
|
+
struct pm_node_list names;
|
4297
|
+
|
4298
|
+
/** UndefNode#keyword_loc */
|
4299
|
+
pm_location_t keyword_loc;
|
4300
|
+
} pm_undef_node_t;
|
4301
|
+
|
4302
|
+
/**
|
4303
|
+
* UnlessNode
|
4304
|
+
*
|
4305
|
+
* Type: PM_UNLESS_NODE
|
4306
|
+
*
|
4307
|
+
* @extends pm_node_t
|
4308
|
+
*/
|
4309
|
+
typedef struct pm_unless_node {
|
4310
|
+
/** The embedded base node. */
|
4311
|
+
pm_node_t base;
|
4312
|
+
|
4313
|
+
/** UnlessNode#keyword_loc */
|
4314
|
+
pm_location_t keyword_loc;
|
4315
|
+
|
4316
|
+
/** UnlessNode#predicate */
|
4317
|
+
struct pm_node *predicate;
|
4318
|
+
|
4319
|
+
/** UnlessNode#then_keyword_loc */
|
4320
|
+
pm_location_t then_keyword_loc;
|
4321
|
+
|
4322
|
+
/** UnlessNode#statements */
|
4323
|
+
struct pm_statements_node *statements;
|
4324
|
+
|
4325
|
+
/** UnlessNode#consequent */
|
4326
|
+
struct pm_else_node *consequent;
|
4327
|
+
|
4328
|
+
/** UnlessNode#end_keyword_loc */
|
4329
|
+
pm_location_t end_keyword_loc;
|
4330
|
+
} pm_unless_node_t;
|
4331
|
+
|
4332
|
+
/**
|
4333
|
+
* UntilNode
|
4334
|
+
*
|
4335
|
+
* Type: PM_UNTIL_NODE
|
4336
|
+
* Flags:
|
4337
|
+
* PM_LOOP_FLAGS_BEGIN_MODIFIER
|
4338
|
+
*
|
4339
|
+
* @extends pm_node_t
|
4340
|
+
*/
|
4341
|
+
typedef struct pm_until_node {
|
4342
|
+
/** The embedded base node. */
|
4343
|
+
pm_node_t base;
|
4344
|
+
|
4345
|
+
/** UntilNode#keyword_loc */
|
4346
|
+
pm_location_t keyword_loc;
|
4347
|
+
|
4348
|
+
/** UntilNode#closing_loc */
|
4349
|
+
pm_location_t closing_loc;
|
4350
|
+
|
4351
|
+
/** UntilNode#predicate */
|
4352
|
+
struct pm_node *predicate;
|
4353
|
+
|
4354
|
+
/** UntilNode#statements */
|
4355
|
+
struct pm_statements_node *statements;
|
4356
|
+
} pm_until_node_t;
|
4357
|
+
|
4358
|
+
/**
|
4359
|
+
* WhenNode
|
4360
|
+
*
|
4361
|
+
* Type: PM_WHEN_NODE
|
4362
|
+
*
|
4363
|
+
* @extends pm_node_t
|
4364
|
+
*/
|
4365
|
+
typedef struct pm_when_node {
|
4366
|
+
/** The embedded base node. */
|
4367
|
+
pm_node_t base;
|
4368
|
+
|
4369
|
+
/** WhenNode#keyword_loc */
|
4370
|
+
pm_location_t keyword_loc;
|
4371
|
+
|
4372
|
+
/** WhenNode#conditions */
|
4373
|
+
struct pm_node_list conditions;
|
4374
|
+
|
4375
|
+
/** WhenNode#statements */
|
4376
|
+
struct pm_statements_node *statements;
|
4377
|
+
} pm_when_node_t;
|
4378
|
+
|
4379
|
+
/**
|
4380
|
+
* WhileNode
|
4381
|
+
*
|
4382
|
+
* Type: PM_WHILE_NODE
|
4383
|
+
* Flags:
|
4384
|
+
* PM_LOOP_FLAGS_BEGIN_MODIFIER
|
4385
|
+
*
|
4386
|
+
* @extends pm_node_t
|
4387
|
+
*/
|
4388
|
+
typedef struct pm_while_node {
|
4389
|
+
/** The embedded base node. */
|
4390
|
+
pm_node_t base;
|
4391
|
+
|
4392
|
+
/** WhileNode#keyword_loc */
|
4393
|
+
pm_location_t keyword_loc;
|
4394
|
+
|
4395
|
+
/** WhileNode#closing_loc */
|
4396
|
+
pm_location_t closing_loc;
|
4397
|
+
|
4398
|
+
/** WhileNode#predicate */
|
4399
|
+
struct pm_node *predicate;
|
4400
|
+
|
4401
|
+
/** WhileNode#statements */
|
4402
|
+
struct pm_statements_node *statements;
|
4403
|
+
} pm_while_node_t;
|
4404
|
+
|
4405
|
+
/**
|
4406
|
+
* XStringNode
|
4407
|
+
*
|
4408
|
+
* Type: PM_X_STRING_NODE
|
4409
|
+
* Flags:
|
4410
|
+
* PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
|
4411
|
+
* PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
|
4412
|
+
*
|
4413
|
+
* @extends pm_node_t
|
4414
|
+
*/
|
4415
|
+
typedef struct pm_x_string_node {
|
4416
|
+
/** The embedded base node. */
|
4417
|
+
pm_node_t base;
|
4418
|
+
|
4419
|
+
/** XStringNode#opening_loc */
|
4420
|
+
pm_location_t opening_loc;
|
4421
|
+
|
4422
|
+
/** XStringNode#content_loc */
|
4423
|
+
pm_location_t content_loc;
|
4424
|
+
|
4425
|
+
/** XStringNode#closing_loc */
|
4426
|
+
pm_location_t closing_loc;
|
4427
|
+
|
4428
|
+
/** XStringNode#unescaped */
|
4429
|
+
pm_string_t unescaped;
|
4430
|
+
} pm_x_string_node_t;
|
4431
|
+
|
4432
|
+
/**
|
4433
|
+
* YieldNode
|
4434
|
+
*
|
4435
|
+
* Type: PM_YIELD_NODE
|
4436
|
+
*
|
4437
|
+
* @extends pm_node_t
|
4438
|
+
*/
|
4439
|
+
typedef struct pm_yield_node {
|
4440
|
+
/** The embedded base node. */
|
4441
|
+
pm_node_t base;
|
4442
|
+
|
4443
|
+
/** YieldNode#keyword_loc */
|
4444
|
+
pm_location_t keyword_loc;
|
4445
|
+
|
4446
|
+
/** YieldNode#lparen_loc */
|
4447
|
+
pm_location_t lparen_loc;
|
4448
|
+
|
4449
|
+
/** YieldNode#arguments */
|
4450
|
+
struct pm_arguments_node *arguments;
|
4451
|
+
|
4452
|
+
/** YieldNode#rparen_loc */
|
4453
|
+
pm_location_t rparen_loc;
|
4454
|
+
} pm_yield_node_t;
|
4455
|
+
|
4456
|
+
/**
|
4457
|
+
* Flags for arguments nodes.
|
4458
|
+
*/
|
4459
|
+
typedef enum pm_arguments_node_flags {
|
4460
|
+
/** if arguments contain keyword splat */
|
4461
|
+
PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 1,
|
4462
|
+
} pm_arguments_node_flags_t;
|
4463
|
+
|
4464
|
+
/**
|
4465
|
+
* Flags for array nodes.
|
4466
|
+
*/
|
4467
|
+
typedef enum pm_array_node_flags {
|
4468
|
+
/** if array contains splat nodes */
|
4469
|
+
PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 1,
|
4470
|
+
} pm_array_node_flags_t;
|
4471
|
+
|
4472
|
+
/**
|
4473
|
+
* Flags for call nodes.
|
4474
|
+
*/
|
4475
|
+
typedef enum pm_call_node_flags {
|
4476
|
+
/** &. operator */
|
4477
|
+
PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 1,
|
4478
|
+
|
4479
|
+
/** a call that could have been a local variable */
|
4480
|
+
PM_CALL_NODE_FLAGS_VARIABLE_CALL = 2,
|
4481
|
+
|
4482
|
+
/** a call that is an attribute write, so the value being written should be returned */
|
4483
|
+
PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 4,
|
4484
|
+
} pm_call_node_flags_t;
|
4485
|
+
|
4486
|
+
/**
|
4487
|
+
* Flags for nodes that have unescaped content.
|
4488
|
+
*/
|
4489
|
+
typedef enum pm_encoding_flags {
|
4490
|
+
/** internal bytes forced the encoding to UTF-8 */
|
4491
|
+
PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 1,
|
4492
|
+
|
4493
|
+
/** internal bytes forced the encoding to binary */
|
4494
|
+
PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 2,
|
4495
|
+
} pm_encoding_flags_t;
|
4496
|
+
|
4497
|
+
/**
|
4498
|
+
* Flags for integer nodes that correspond to the base of the integer.
|
4499
|
+
*/
|
4500
|
+
typedef enum pm_integer_base_flags {
|
4501
|
+
/** 0b prefix */
|
4502
|
+
PM_INTEGER_BASE_FLAGS_BINARY = 1,
|
4503
|
+
|
4504
|
+
/** 0d or no prefix */
|
4505
|
+
PM_INTEGER_BASE_FLAGS_DECIMAL = 2,
|
4506
|
+
|
4507
|
+
/** 0o or 0 prefix */
|
4508
|
+
PM_INTEGER_BASE_FLAGS_OCTAL = 4,
|
4509
|
+
|
4510
|
+
/** 0x prefix */
|
4511
|
+
PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 8,
|
4512
|
+
} pm_integer_base_flags_t;
|
4513
|
+
|
4514
|
+
/**
|
4515
|
+
* Flags for keyword hash nodes.
|
4516
|
+
*/
|
4517
|
+
typedef enum pm_keyword_hash_node_flags {
|
4518
|
+
/** a keyword hash which only has `AssocNode` elements all with static literal keys, which means the elements can be treated as keyword arguments */
|
4519
|
+
PM_KEYWORD_HASH_NODE_FLAGS_STATIC_KEYS = 1,
|
4520
|
+
} pm_keyword_hash_node_flags_t;
|
4521
|
+
|
4522
|
+
/**
|
4523
|
+
* Flags for while and until loop nodes.
|
4524
|
+
*/
|
4525
|
+
typedef enum pm_loop_flags {
|
4526
|
+
/** a loop after a begin statement, so the body is executed first before the condition */
|
4527
|
+
PM_LOOP_FLAGS_BEGIN_MODIFIER = 1,
|
4528
|
+
} pm_loop_flags_t;
|
4529
|
+
|
4530
|
+
/**
|
4531
|
+
* Flags for range and flip-flop nodes.
|
4532
|
+
*/
|
4533
|
+
typedef enum pm_range_flags {
|
4534
|
+
/** ... operator */
|
4535
|
+
PM_RANGE_FLAGS_EXCLUDE_END = 1,
|
4536
|
+
} pm_range_flags_t;
|
4537
|
+
|
4538
|
+
/**
|
4539
|
+
* Flags for regular expression and match last line nodes.
|
4540
|
+
*/
|
4541
|
+
typedef enum pm_regular_expression_flags {
|
4542
|
+
/** i - ignores the case of characters when matching */
|
4543
|
+
PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 1,
|
4544
|
+
|
4545
|
+
/** x - ignores whitespace and allows comments in regular expressions */
|
4546
|
+
PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 2,
|
4547
|
+
|
4548
|
+
/** m - allows $ to match the end of lines within strings */
|
4549
|
+
PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 4,
|
4550
|
+
|
4551
|
+
/** o - only interpolates values into the regular expression once */
|
4552
|
+
PM_REGULAR_EXPRESSION_FLAGS_ONCE = 8,
|
4553
|
+
|
4554
|
+
/** e - forces the EUC-JP encoding */
|
4555
|
+
PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 16,
|
4556
|
+
|
4557
|
+
/** n - forces the ASCII-8BIT encoding */
|
4558
|
+
PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 32,
|
4559
|
+
|
4560
|
+
/** s - forces the Windows-31J encoding */
|
4561
|
+
PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 64,
|
4562
|
+
|
4563
|
+
/** u - forces the UTF-8 encoding */
|
4564
|
+
PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 128,
|
4565
|
+
|
4566
|
+
/** internal bytes forced the encoding to UTF-8 */
|
4567
|
+
PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 256,
|
4568
|
+
|
4569
|
+
/** internal bytes forced the encoding to binary */
|
4570
|
+
PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 512,
|
4571
|
+
|
4572
|
+
/** internal bytes forced the encoding to US-ASCII */
|
4573
|
+
PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 1024,
|
4574
|
+
} pm_regular_expression_flags_t;
|
4575
|
+
|
4576
|
+
/**
|
4577
|
+
* Flags for string nodes.
|
4578
|
+
*/
|
4579
|
+
typedef enum pm_string_flags {
|
4580
|
+
/** internal bytes forced the encoding to UTF-8 */
|
4581
|
+
PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 1,
|
4582
|
+
|
4583
|
+
/** internal bytes forced the encoding to binary */
|
4584
|
+
PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 2,
|
4585
|
+
|
4586
|
+
/** frozen by virtue of a `frozen_string_literal` comment */
|
4587
|
+
PM_STRING_FLAGS_FROZEN = 4,
|
4588
|
+
} pm_string_flags_t;
|
4589
|
+
|
4590
|
+
/**
|
4591
|
+
* Flags for symbol nodes.
|
4592
|
+
*/
|
4593
|
+
typedef enum pm_symbol_flags {
|
4594
|
+
/** internal bytes forced the encoding to UTF-8 */
|
4595
|
+
PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 1,
|
4596
|
+
|
4597
|
+
/** internal bytes forced the encoding to binary */
|
4598
|
+
PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 2,
|
4599
|
+
|
4600
|
+
/** internal bytes forced the encoding to US-ASCII */
|
4601
|
+
PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 4,
|
4602
|
+
} pm_symbol_flags_t;
|
4603
|
+
|
4604
|
+
/**
|
4605
|
+
* When we're serializing to Java, we want to skip serializing the location
|
4606
|
+
* fields as they won't be used by JRuby or TruffleRuby. This boolean allows us
|
4607
|
+
* to specify that through the environment. It will never be true except for in
|
4608
|
+
* those build systems.
|
4609
|
+
*/
|
4610
|
+
#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS false
|
4611
|
+
|
4612
|
+
#endif
|