18#include "prism/compiler/cplusplus.hpp"
33static_assert(std::is_standard_layout_v<pm_alias_global_variable_node_t> && offsetof(
pm_alias_global_variable_node_t, base) == 0,
"pm_alias_global_variable_node_t must begin with its pm_node_t");
37static_assert(std::is_standard_layout_v<pm_alias_method_node_t> && offsetof(
pm_alias_method_node_t, base) == 0,
"pm_alias_method_node_t must begin with its pm_node_t");
41static_assert(std::is_standard_layout_v<pm_alternation_pattern_node_t> && offsetof(
pm_alternation_pattern_node_t, base) == 0,
"pm_alternation_pattern_node_t must begin with its pm_node_t");
45static_assert(std::is_standard_layout_v<pm_and_node_t> && offsetof(
pm_and_node_t, base) == 0,
"pm_and_node_t must begin with its pm_node_t");
49static_assert(std::is_standard_layout_v<pm_arguments_node_t> && offsetof(
pm_arguments_node_t, base) == 0,
"pm_arguments_node_t must begin with its pm_node_t");
53static_assert(std::is_standard_layout_v<pm_array_node_t> && offsetof(
pm_array_node_t, base) == 0,
"pm_array_node_t must begin with its pm_node_t");
57static_assert(std::is_standard_layout_v<pm_array_pattern_node_t> && offsetof(
pm_array_pattern_node_t, base) == 0,
"pm_array_pattern_node_t must begin with its pm_node_t");
61static_assert(std::is_standard_layout_v<pm_assoc_node_t> && offsetof(
pm_assoc_node_t, base) == 0,
"pm_assoc_node_t must begin with its pm_node_t");
65static_assert(std::is_standard_layout_v<pm_assoc_splat_node_t> && offsetof(
pm_assoc_splat_node_t, base) == 0,
"pm_assoc_splat_node_t must begin with its pm_node_t");
69static_assert(std::is_standard_layout_v<pm_back_reference_read_node_t> && offsetof(
pm_back_reference_read_node_t, base) == 0,
"pm_back_reference_read_node_t must begin with its pm_node_t");
73static_assert(std::is_standard_layout_v<pm_begin_node_t> && offsetof(
pm_begin_node_t, base) == 0,
"pm_begin_node_t must begin with its pm_node_t");
77static_assert(std::is_standard_layout_v<pm_block_argument_node_t> && offsetof(
pm_block_argument_node_t, base) == 0,
"pm_block_argument_node_t must begin with its pm_node_t");
81static_assert(std::is_standard_layout_v<pm_block_local_variable_node_t> && offsetof(
pm_block_local_variable_node_t, base) == 0,
"pm_block_local_variable_node_t must begin with its pm_node_t");
85static_assert(std::is_standard_layout_v<pm_block_node_t> && offsetof(
pm_block_node_t, base) == 0,
"pm_block_node_t must begin with its pm_node_t");
89static_assert(std::is_standard_layout_v<pm_block_parameter_node_t> && offsetof(
pm_block_parameter_node_t, base) == 0,
"pm_block_parameter_node_t must begin with its pm_node_t");
93static_assert(std::is_standard_layout_v<pm_block_parameters_node_t> && offsetof(
pm_block_parameters_node_t, base) == 0,
"pm_block_parameters_node_t must begin with its pm_node_t");
97static_assert(std::is_standard_layout_v<pm_break_node_t> && offsetof(
pm_break_node_t, base) == 0,
"pm_break_node_t must begin with its pm_node_t");
101static_assert(std::is_standard_layout_v<pm_call_and_write_node_t> && offsetof(
pm_call_and_write_node_t, base) == 0,
"pm_call_and_write_node_t must begin with its pm_node_t");
105static_assert(std::is_standard_layout_v<pm_call_node_t> && offsetof(
pm_call_node_t, base) == 0,
"pm_call_node_t must begin with its pm_node_t");
109static_assert(std::is_standard_layout_v<pm_call_operator_write_node_t> && offsetof(
pm_call_operator_write_node_t, base) == 0,
"pm_call_operator_write_node_t must begin with its pm_node_t");
113static_assert(std::is_standard_layout_v<pm_call_or_write_node_t> && offsetof(
pm_call_or_write_node_t, base) == 0,
"pm_call_or_write_node_t must begin with its pm_node_t");
117static_assert(std::is_standard_layout_v<pm_call_target_node_t> && offsetof(
pm_call_target_node_t, base) == 0,
"pm_call_target_node_t must begin with its pm_node_t");
121static_assert(std::is_standard_layout_v<pm_capture_pattern_node_t> && offsetof(
pm_capture_pattern_node_t, base) == 0,
"pm_capture_pattern_node_t must begin with its pm_node_t");
125static_assert(std::is_standard_layout_v<pm_case_match_node_t> && offsetof(
pm_case_match_node_t, base) == 0,
"pm_case_match_node_t must begin with its pm_node_t");
129static_assert(std::is_standard_layout_v<pm_case_node_t> && offsetof(
pm_case_node_t, base) == 0,
"pm_case_node_t must begin with its pm_node_t");
133static_assert(std::is_standard_layout_v<pm_class_node_t> && offsetof(
pm_class_node_t, base) == 0,
"pm_class_node_t must begin with its pm_node_t");
137static_assert(std::is_standard_layout_v<pm_class_variable_and_write_node_t> && offsetof(
pm_class_variable_and_write_node_t, base) == 0,
"pm_class_variable_and_write_node_t must begin with its pm_node_t");
141static_assert(std::is_standard_layout_v<pm_class_variable_operator_write_node_t> && offsetof(
pm_class_variable_operator_write_node_t, base) == 0,
"pm_class_variable_operator_write_node_t must begin with its pm_node_t");
145static_assert(std::is_standard_layout_v<pm_class_variable_or_write_node_t> && offsetof(
pm_class_variable_or_write_node_t, base) == 0,
"pm_class_variable_or_write_node_t must begin with its pm_node_t");
149static_assert(std::is_standard_layout_v<pm_class_variable_read_node_t> && offsetof(
pm_class_variable_read_node_t, base) == 0,
"pm_class_variable_read_node_t must begin with its pm_node_t");
153static_assert(std::is_standard_layout_v<pm_class_variable_target_node_t> && offsetof(
pm_class_variable_target_node_t, base) == 0,
"pm_class_variable_target_node_t must begin with its pm_node_t");
157static_assert(std::is_standard_layout_v<pm_class_variable_write_node_t> && offsetof(
pm_class_variable_write_node_t, base) == 0,
"pm_class_variable_write_node_t must begin with its pm_node_t");
161static_assert(std::is_standard_layout_v<pm_constant_and_write_node_t> && offsetof(
pm_constant_and_write_node_t, base) == 0,
"pm_constant_and_write_node_t must begin with its pm_node_t");
165static_assert(std::is_standard_layout_v<pm_constant_operator_write_node_t> && offsetof(
pm_constant_operator_write_node_t, base) == 0,
"pm_constant_operator_write_node_t must begin with its pm_node_t");
169static_assert(std::is_standard_layout_v<pm_constant_or_write_node_t> && offsetof(
pm_constant_or_write_node_t, base) == 0,
"pm_constant_or_write_node_t must begin with its pm_node_t");
173static_assert(std::is_standard_layout_v<pm_constant_path_and_write_node_t> && offsetof(
pm_constant_path_and_write_node_t, base) == 0,
"pm_constant_path_and_write_node_t must begin with its pm_node_t");
177static_assert(std::is_standard_layout_v<pm_constant_path_node_t> && offsetof(
pm_constant_path_node_t, base) == 0,
"pm_constant_path_node_t must begin with its pm_node_t");
181static_assert(std::is_standard_layout_v<pm_constant_path_operator_write_node_t> && offsetof(
pm_constant_path_operator_write_node_t, base) == 0,
"pm_constant_path_operator_write_node_t must begin with its pm_node_t");
185static_assert(std::is_standard_layout_v<pm_constant_path_or_write_node_t> && offsetof(
pm_constant_path_or_write_node_t, base) == 0,
"pm_constant_path_or_write_node_t must begin with its pm_node_t");
189static_assert(std::is_standard_layout_v<pm_constant_path_target_node_t> && offsetof(
pm_constant_path_target_node_t, base) == 0,
"pm_constant_path_target_node_t must begin with its pm_node_t");
193static_assert(std::is_standard_layout_v<pm_constant_path_write_node_t> && offsetof(
pm_constant_path_write_node_t, base) == 0,
"pm_constant_path_write_node_t must begin with its pm_node_t");
197static_assert(std::is_standard_layout_v<pm_constant_read_node_t> && offsetof(
pm_constant_read_node_t, base) == 0,
"pm_constant_read_node_t must begin with its pm_node_t");
201static_assert(std::is_standard_layout_v<pm_constant_target_node_t> && offsetof(
pm_constant_target_node_t, base) == 0,
"pm_constant_target_node_t must begin with its pm_node_t");
205static_assert(std::is_standard_layout_v<pm_constant_write_node_t> && offsetof(
pm_constant_write_node_t, base) == 0,
"pm_constant_write_node_t must begin with its pm_node_t");
209static_assert(std::is_standard_layout_v<pm_def_node_t> && offsetof(
pm_def_node_t, base) == 0,
"pm_def_node_t must begin with its pm_node_t");
213static_assert(std::is_standard_layout_v<pm_defined_node_t> && offsetof(
pm_defined_node_t, base) == 0,
"pm_defined_node_t must begin with its pm_node_t");
217static_assert(std::is_standard_layout_v<pm_else_node_t> && offsetof(
pm_else_node_t, base) == 0,
"pm_else_node_t must begin with its pm_node_t");
221static_assert(std::is_standard_layout_v<pm_embedded_statements_node_t> && offsetof(
pm_embedded_statements_node_t, base) == 0,
"pm_embedded_statements_node_t must begin with its pm_node_t");
225static_assert(std::is_standard_layout_v<pm_embedded_variable_node_t> && offsetof(
pm_embedded_variable_node_t, base) == 0,
"pm_embedded_variable_node_t must begin with its pm_node_t");
229static_assert(std::is_standard_layout_v<pm_ensure_node_t> && offsetof(
pm_ensure_node_t, base) == 0,
"pm_ensure_node_t must begin with its pm_node_t");
233static_assert(std::is_standard_layout_v<pm_error_recovery_node_t> && offsetof(
pm_error_recovery_node_t, base) == 0,
"pm_error_recovery_node_t must begin with its pm_node_t");
237static_assert(std::is_standard_layout_v<pm_false_node_t> && offsetof(
pm_false_node_t, base) == 0,
"pm_false_node_t must begin with its pm_node_t");
241static_assert(std::is_standard_layout_v<pm_find_pattern_node_t> && offsetof(
pm_find_pattern_node_t, base) == 0,
"pm_find_pattern_node_t must begin with its pm_node_t");
245static_assert(std::is_standard_layout_v<pm_flip_flop_node_t> && offsetof(
pm_flip_flop_node_t, base) == 0,
"pm_flip_flop_node_t must begin with its pm_node_t");
249static_assert(std::is_standard_layout_v<pm_float_node_t> && offsetof(
pm_float_node_t, base) == 0,
"pm_float_node_t must begin with its pm_node_t");
253static_assert(std::is_standard_layout_v<pm_for_node_t> && offsetof(
pm_for_node_t, base) == 0,
"pm_for_node_t must begin with its pm_node_t");
257static_assert(std::is_standard_layout_v<pm_forwarding_arguments_node_t> && offsetof(
pm_forwarding_arguments_node_t, base) == 0,
"pm_forwarding_arguments_node_t must begin with its pm_node_t");
261static_assert(std::is_standard_layout_v<pm_forwarding_parameter_node_t> && offsetof(
pm_forwarding_parameter_node_t, base) == 0,
"pm_forwarding_parameter_node_t must begin with its pm_node_t");
265static_assert(std::is_standard_layout_v<pm_forwarding_super_node_t> && offsetof(
pm_forwarding_super_node_t, base) == 0,
"pm_forwarding_super_node_t must begin with its pm_node_t");
269static_assert(std::is_standard_layout_v<pm_global_variable_and_write_node_t> && offsetof(
pm_global_variable_and_write_node_t, base) == 0,
"pm_global_variable_and_write_node_t must begin with its pm_node_t");
273static_assert(std::is_standard_layout_v<pm_global_variable_operator_write_node_t> && offsetof(
pm_global_variable_operator_write_node_t, base) == 0,
"pm_global_variable_operator_write_node_t must begin with its pm_node_t");
277static_assert(std::is_standard_layout_v<pm_global_variable_or_write_node_t> && offsetof(
pm_global_variable_or_write_node_t, base) == 0,
"pm_global_variable_or_write_node_t must begin with its pm_node_t");
281static_assert(std::is_standard_layout_v<pm_global_variable_read_node_t> && offsetof(
pm_global_variable_read_node_t, base) == 0,
"pm_global_variable_read_node_t must begin with its pm_node_t");
285static_assert(std::is_standard_layout_v<pm_global_variable_target_node_t> && offsetof(
pm_global_variable_target_node_t, base) == 0,
"pm_global_variable_target_node_t must begin with its pm_node_t");
289static_assert(std::is_standard_layout_v<pm_global_variable_write_node_t> && offsetof(
pm_global_variable_write_node_t, base) == 0,
"pm_global_variable_write_node_t must begin with its pm_node_t");
293static_assert(std::is_standard_layout_v<pm_hash_node_t> && offsetof(
pm_hash_node_t, base) == 0,
"pm_hash_node_t must begin with its pm_node_t");
297static_assert(std::is_standard_layout_v<pm_hash_pattern_node_t> && offsetof(
pm_hash_pattern_node_t, base) == 0,
"pm_hash_pattern_node_t must begin with its pm_node_t");
301static_assert(std::is_standard_layout_v<pm_if_node_t> && offsetof(
pm_if_node_t, base) == 0,
"pm_if_node_t must begin with its pm_node_t");
305static_assert(std::is_standard_layout_v<pm_imaginary_node_t> && offsetof(
pm_imaginary_node_t, base) == 0,
"pm_imaginary_node_t must begin with its pm_node_t");
309static_assert(std::is_standard_layout_v<pm_implicit_node_t> && offsetof(
pm_implicit_node_t, base) == 0,
"pm_implicit_node_t must begin with its pm_node_t");
313static_assert(std::is_standard_layout_v<pm_implicit_rest_node_t> && offsetof(
pm_implicit_rest_node_t, base) == 0,
"pm_implicit_rest_node_t must begin with its pm_node_t");
317static_assert(std::is_standard_layout_v<pm_in_node_t> && offsetof(
pm_in_node_t, base) == 0,
"pm_in_node_t must begin with its pm_node_t");
321static_assert(std::is_standard_layout_v<pm_index_and_write_node_t> && offsetof(
pm_index_and_write_node_t, base) == 0,
"pm_index_and_write_node_t must begin with its pm_node_t");
325static_assert(std::is_standard_layout_v<pm_index_operator_write_node_t> && offsetof(
pm_index_operator_write_node_t, base) == 0,
"pm_index_operator_write_node_t must begin with its pm_node_t");
329static_assert(std::is_standard_layout_v<pm_index_or_write_node_t> && offsetof(
pm_index_or_write_node_t, base) == 0,
"pm_index_or_write_node_t must begin with its pm_node_t");
333static_assert(std::is_standard_layout_v<pm_index_target_node_t> && offsetof(
pm_index_target_node_t, base) == 0,
"pm_index_target_node_t must begin with its pm_node_t");
337static_assert(std::is_standard_layout_v<pm_instance_variable_and_write_node_t> && offsetof(
pm_instance_variable_and_write_node_t, base) == 0,
"pm_instance_variable_and_write_node_t must begin with its pm_node_t");
341static_assert(std::is_standard_layout_v<pm_instance_variable_operator_write_node_t> && offsetof(
pm_instance_variable_operator_write_node_t, base) == 0,
"pm_instance_variable_operator_write_node_t must begin with its pm_node_t");
345static_assert(std::is_standard_layout_v<pm_instance_variable_or_write_node_t> && offsetof(
pm_instance_variable_or_write_node_t, base) == 0,
"pm_instance_variable_or_write_node_t must begin with its pm_node_t");
349static_assert(std::is_standard_layout_v<pm_instance_variable_read_node_t> && offsetof(
pm_instance_variable_read_node_t, base) == 0,
"pm_instance_variable_read_node_t must begin with its pm_node_t");
353static_assert(std::is_standard_layout_v<pm_instance_variable_target_node_t> && offsetof(
pm_instance_variable_target_node_t, base) == 0,
"pm_instance_variable_target_node_t must begin with its pm_node_t");
357static_assert(std::is_standard_layout_v<pm_instance_variable_write_node_t> && offsetof(
pm_instance_variable_write_node_t, base) == 0,
"pm_instance_variable_write_node_t must begin with its pm_node_t");
361static_assert(std::is_standard_layout_v<pm_integer_node_t> && offsetof(
pm_integer_node_t, base) == 0,
"pm_integer_node_t must begin with its pm_node_t");
365static_assert(std::is_standard_layout_v<pm_interpolated_match_last_line_node_t> && offsetof(
pm_interpolated_match_last_line_node_t, base) == 0,
"pm_interpolated_match_last_line_node_t must begin with its pm_node_t");
369static_assert(std::is_standard_layout_v<pm_interpolated_regular_expression_node_t> && offsetof(
pm_interpolated_regular_expression_node_t, base) == 0,
"pm_interpolated_regular_expression_node_t must begin with its pm_node_t");
373static_assert(std::is_standard_layout_v<pm_interpolated_string_node_t> && offsetof(
pm_interpolated_string_node_t, base) == 0,
"pm_interpolated_string_node_t must begin with its pm_node_t");
377static_assert(std::is_standard_layout_v<pm_interpolated_symbol_node_t> && offsetof(
pm_interpolated_symbol_node_t, base) == 0,
"pm_interpolated_symbol_node_t must begin with its pm_node_t");
381static_assert(std::is_standard_layout_v<pm_interpolated_x_string_node_t> && offsetof(
pm_interpolated_x_string_node_t, base) == 0,
"pm_interpolated_x_string_node_t must begin with its pm_node_t");
385static_assert(std::is_standard_layout_v<pm_it_local_variable_read_node_t> && offsetof(
pm_it_local_variable_read_node_t, base) == 0,
"pm_it_local_variable_read_node_t must begin with its pm_node_t");
389static_assert(std::is_standard_layout_v<pm_it_parameters_node_t> && offsetof(
pm_it_parameters_node_t, base) == 0,
"pm_it_parameters_node_t must begin with its pm_node_t");
393static_assert(std::is_standard_layout_v<pm_keyword_hash_node_t> && offsetof(
pm_keyword_hash_node_t, base) == 0,
"pm_keyword_hash_node_t must begin with its pm_node_t");
397static_assert(std::is_standard_layout_v<pm_keyword_rest_parameter_node_t> && offsetof(
pm_keyword_rest_parameter_node_t, base) == 0,
"pm_keyword_rest_parameter_node_t must begin with its pm_node_t");
401static_assert(std::is_standard_layout_v<pm_lambda_node_t> && offsetof(
pm_lambda_node_t, base) == 0,
"pm_lambda_node_t must begin with its pm_node_t");
405static_assert(std::is_standard_layout_v<pm_local_variable_and_write_node_t> && offsetof(
pm_local_variable_and_write_node_t, base) == 0,
"pm_local_variable_and_write_node_t must begin with its pm_node_t");
409static_assert(std::is_standard_layout_v<pm_local_variable_operator_write_node_t> && offsetof(
pm_local_variable_operator_write_node_t, base) == 0,
"pm_local_variable_operator_write_node_t must begin with its pm_node_t");
413static_assert(std::is_standard_layout_v<pm_local_variable_or_write_node_t> && offsetof(
pm_local_variable_or_write_node_t, base) == 0,
"pm_local_variable_or_write_node_t must begin with its pm_node_t");
417static_assert(std::is_standard_layout_v<pm_local_variable_read_node_t> && offsetof(
pm_local_variable_read_node_t, base) == 0,
"pm_local_variable_read_node_t must begin with its pm_node_t");
421static_assert(std::is_standard_layout_v<pm_local_variable_target_node_t> && offsetof(
pm_local_variable_target_node_t, base) == 0,
"pm_local_variable_target_node_t must begin with its pm_node_t");
425static_assert(std::is_standard_layout_v<pm_local_variable_write_node_t> && offsetof(
pm_local_variable_write_node_t, base) == 0,
"pm_local_variable_write_node_t must begin with its pm_node_t");
429static_assert(std::is_standard_layout_v<pm_match_last_line_node_t> && offsetof(
pm_match_last_line_node_t, base) == 0,
"pm_match_last_line_node_t must begin with its pm_node_t");
433static_assert(std::is_standard_layout_v<pm_match_predicate_node_t> && offsetof(
pm_match_predicate_node_t, base) == 0,
"pm_match_predicate_node_t must begin with its pm_node_t");
437static_assert(std::is_standard_layout_v<pm_match_required_node_t> && offsetof(
pm_match_required_node_t, base) == 0,
"pm_match_required_node_t must begin with its pm_node_t");
441static_assert(std::is_standard_layout_v<pm_match_write_node_t> && offsetof(
pm_match_write_node_t, base) == 0,
"pm_match_write_node_t must begin with its pm_node_t");
445static_assert(std::is_standard_layout_v<pm_module_node_t> && offsetof(
pm_module_node_t, base) == 0,
"pm_module_node_t must begin with its pm_node_t");
449static_assert(std::is_standard_layout_v<pm_multi_target_node_t> && offsetof(
pm_multi_target_node_t, base) == 0,
"pm_multi_target_node_t must begin with its pm_node_t");
453static_assert(std::is_standard_layout_v<pm_multi_write_node_t> && offsetof(
pm_multi_write_node_t, base) == 0,
"pm_multi_write_node_t must begin with its pm_node_t");
457static_assert(std::is_standard_layout_v<pm_next_node_t> && offsetof(
pm_next_node_t, base) == 0,
"pm_next_node_t must begin with its pm_node_t");
461static_assert(std::is_standard_layout_v<pm_nil_node_t> && offsetof(
pm_nil_node_t, base) == 0,
"pm_nil_node_t must begin with its pm_node_t");
465static_assert(std::is_standard_layout_v<pm_no_block_parameter_node_t> && offsetof(
pm_no_block_parameter_node_t, base) == 0,
"pm_no_block_parameter_node_t must begin with its pm_node_t");
469static_assert(std::is_standard_layout_v<pm_no_keywords_parameter_node_t> && offsetof(
pm_no_keywords_parameter_node_t, base) == 0,
"pm_no_keywords_parameter_node_t must begin with its pm_node_t");
473static_assert(std::is_standard_layout_v<pm_numbered_parameters_node_t> && offsetof(
pm_numbered_parameters_node_t, base) == 0,
"pm_numbered_parameters_node_t must begin with its pm_node_t");
477static_assert(std::is_standard_layout_v<pm_numbered_reference_read_node_t> && offsetof(
pm_numbered_reference_read_node_t, base) == 0,
"pm_numbered_reference_read_node_t must begin with its pm_node_t");
481static_assert(std::is_standard_layout_v<pm_optional_keyword_parameter_node_t> && offsetof(
pm_optional_keyword_parameter_node_t, base) == 0,
"pm_optional_keyword_parameter_node_t must begin with its pm_node_t");
485static_assert(std::is_standard_layout_v<pm_optional_parameter_node_t> && offsetof(
pm_optional_parameter_node_t, base) == 0,
"pm_optional_parameter_node_t must begin with its pm_node_t");
489static_assert(std::is_standard_layout_v<pm_or_node_t> && offsetof(
pm_or_node_t, base) == 0,
"pm_or_node_t must begin with its pm_node_t");
493static_assert(std::is_standard_layout_v<pm_parameters_node_t> && offsetof(
pm_parameters_node_t, base) == 0,
"pm_parameters_node_t must begin with its pm_node_t");
497static_assert(std::is_standard_layout_v<pm_parentheses_node_t> && offsetof(
pm_parentheses_node_t, base) == 0,
"pm_parentheses_node_t must begin with its pm_node_t");
501static_assert(std::is_standard_layout_v<pm_pinned_expression_node_t> && offsetof(
pm_pinned_expression_node_t, base) == 0,
"pm_pinned_expression_node_t must begin with its pm_node_t");
505static_assert(std::is_standard_layout_v<pm_pinned_variable_node_t> && offsetof(
pm_pinned_variable_node_t, base) == 0,
"pm_pinned_variable_node_t must begin with its pm_node_t");
509static_assert(std::is_standard_layout_v<pm_post_execution_node_t> && offsetof(
pm_post_execution_node_t, base) == 0,
"pm_post_execution_node_t must begin with its pm_node_t");
513static_assert(std::is_standard_layout_v<pm_pre_execution_node_t> && offsetof(
pm_pre_execution_node_t, base) == 0,
"pm_pre_execution_node_t must begin with its pm_node_t");
517static_assert(std::is_standard_layout_v<pm_program_node_t> && offsetof(
pm_program_node_t, base) == 0,
"pm_program_node_t must begin with its pm_node_t");
521static_assert(std::is_standard_layout_v<pm_range_node_t> && offsetof(
pm_range_node_t, base) == 0,
"pm_range_node_t must begin with its pm_node_t");
525static_assert(std::is_standard_layout_v<pm_rational_node_t> && offsetof(
pm_rational_node_t, base) == 0,
"pm_rational_node_t must begin with its pm_node_t");
529static_assert(std::is_standard_layout_v<pm_redo_node_t> && offsetof(
pm_redo_node_t, base) == 0,
"pm_redo_node_t must begin with its pm_node_t");
533static_assert(std::is_standard_layout_v<pm_regular_expression_node_t> && offsetof(
pm_regular_expression_node_t, base) == 0,
"pm_regular_expression_node_t must begin with its pm_node_t");
537static_assert(std::is_standard_layout_v<pm_required_keyword_parameter_node_t> && offsetof(
pm_required_keyword_parameter_node_t, base) == 0,
"pm_required_keyword_parameter_node_t must begin with its pm_node_t");
541static_assert(std::is_standard_layout_v<pm_required_parameter_node_t> && offsetof(
pm_required_parameter_node_t, base) == 0,
"pm_required_parameter_node_t must begin with its pm_node_t");
545static_assert(std::is_standard_layout_v<pm_rescue_modifier_node_t> && offsetof(
pm_rescue_modifier_node_t, base) == 0,
"pm_rescue_modifier_node_t must begin with its pm_node_t");
549static_assert(std::is_standard_layout_v<pm_rescue_node_t> && offsetof(
pm_rescue_node_t, base) == 0,
"pm_rescue_node_t must begin with its pm_node_t");
553static_assert(std::is_standard_layout_v<pm_rest_parameter_node_t> && offsetof(
pm_rest_parameter_node_t, base) == 0,
"pm_rest_parameter_node_t must begin with its pm_node_t");
557static_assert(std::is_standard_layout_v<pm_retry_node_t> && offsetof(
pm_retry_node_t, base) == 0,
"pm_retry_node_t must begin with its pm_node_t");
561static_assert(std::is_standard_layout_v<pm_return_node_t> && offsetof(
pm_return_node_t, base) == 0,
"pm_return_node_t must begin with its pm_node_t");
565static_assert(std::is_standard_layout_v<pm_self_node_t> && offsetof(
pm_self_node_t, base) == 0,
"pm_self_node_t must begin with its pm_node_t");
569static_assert(std::is_standard_layout_v<pm_shareable_constant_node_t> && offsetof(
pm_shareable_constant_node_t, base) == 0,
"pm_shareable_constant_node_t must begin with its pm_node_t");
573static_assert(std::is_standard_layout_v<pm_singleton_class_node_t> && offsetof(
pm_singleton_class_node_t, base) == 0,
"pm_singleton_class_node_t must begin with its pm_node_t");
577static_assert(std::is_standard_layout_v<pm_source_encoding_node_t> && offsetof(
pm_source_encoding_node_t, base) == 0,
"pm_source_encoding_node_t must begin with its pm_node_t");
581static_assert(std::is_standard_layout_v<pm_source_file_node_t> && offsetof(
pm_source_file_node_t, base) == 0,
"pm_source_file_node_t must begin with its pm_node_t");
585static_assert(std::is_standard_layout_v<pm_source_line_node_t> && offsetof(
pm_source_line_node_t, base) == 0,
"pm_source_line_node_t must begin with its pm_node_t");
589static_assert(std::is_standard_layout_v<pm_splat_node_t> && offsetof(
pm_splat_node_t, base) == 0,
"pm_splat_node_t must begin with its pm_node_t");
593static_assert(std::is_standard_layout_v<pm_statements_node_t> && offsetof(
pm_statements_node_t, base) == 0,
"pm_statements_node_t must begin with its pm_node_t");
597static_assert(std::is_standard_layout_v<pm_string_node_t> && offsetof(
pm_string_node_t, base) == 0,
"pm_string_node_t must begin with its pm_node_t");
601static_assert(std::is_standard_layout_v<pm_super_node_t> && offsetof(
pm_super_node_t, base) == 0,
"pm_super_node_t must begin with its pm_node_t");
605static_assert(std::is_standard_layout_v<pm_symbol_node_t> && offsetof(
pm_symbol_node_t, base) == 0,
"pm_symbol_node_t must begin with its pm_node_t");
609static_assert(std::is_standard_layout_v<pm_true_node_t> && offsetof(
pm_true_node_t, base) == 0,
"pm_true_node_t must begin with its pm_node_t");
613static_assert(std::is_standard_layout_v<pm_undef_node_t> && offsetof(
pm_undef_node_t, base) == 0,
"pm_undef_node_t must begin with its pm_node_t");
617static_assert(std::is_standard_layout_v<pm_unless_node_t> && offsetof(
pm_unless_node_t, base) == 0,
"pm_unless_node_t must begin with its pm_node_t");
621static_assert(std::is_standard_layout_v<pm_until_node_t> && offsetof(
pm_until_node_t, base) == 0,
"pm_until_node_t must begin with its pm_node_t");
625static_assert(std::is_standard_layout_v<pm_when_node_t> && offsetof(
pm_when_node_t, base) == 0,
"pm_when_node_t must begin with its pm_node_t");
629static_assert(std::is_standard_layout_v<pm_while_node_t> && offsetof(
pm_while_node_t, base) == 0,
"pm_while_node_t must begin with its pm_node_t");
633static_assert(std::is_standard_layout_v<pm_x_string_node_t> && offsetof(
pm_x_string_node_t, base) == 0,
"pm_x_string_node_t must begin with its pm_node_t");
637static_assert(std::is_standard_layout_v<pm_yield_node_t> && offsetof(
pm_yield_node_t, base) == 0,
"pm_yield_node_t must begin with its pm_node_t");
The abstract syntax tree.
The traits that map node structs to node types.
AliasGlobalVariableNode.
Definition ast.h:1170
AliasMethodNode.
Definition ast.h:1217
AlternationPatternNode.
Definition ast.h:1276
AndNode.
Definition ast.h:1323
ArgumentsNode.
Definition ast.h:1383
ArrayNode.
Definition ast.h:1413
ArrayPatternNode.
Definition ast.h:1473
AssocNode.
Definition ast.h:1556
AssocSplatNode.
Definition ast.h:1612
BackReferenceReadNode.
Definition ast.h:1649
BeginNode.
Definition ast.h:1679
BlockArgumentNode.
Definition ast.h:1756
BlockLocalVariableNode.
Definition ast.h:1796
BlockNode.
Definition ast.h:1823
BlockParameterNode.
Definition ast.h:1898
BlockParametersNode.
Definition ast.h:1951
BreakNode.
Definition ast.h:2024
CallAndWriteNode.
Definition ast.h:2067
CallNode.
Definition ast.h:2175
CallOperatorWriteNode.
Definition ast.h:2300
CallOrWriteNode.
Definition ast.h:2403
CallTargetNode.
Definition ast.h:2504
CapturePatternNode.
Definition ast.h:2561
CaseMatchNode.
Definition ast.h:2610
CaseNode.
Definition ast.h:2679
ClassNode.
Definition ast.h:2746
ClassVariableAndWriteNode.
Definition ast.h:2832
ClassVariableOperatorWriteNode.
Definition ast.h:2889
ClassVariableOrWriteNode.
Definition ast.h:2931
ClassVariableReadNode.
Definition ast.h:2968
ClassVariableTargetNode.
Definition ast.h:2996
ClassVariableWriteNode.
Definition ast.h:3018
ConstantAndWriteNode.
Definition ast.h:3079
ConstantOperatorWriteNode.
Definition ast.h:3116
ConstantOrWriteNode.
Definition ast.h:3158
ConstantPathAndWriteNode.
Definition ast.h:3195
ConstantPathNode.
Definition ast.h:3227
ConstantPathOperatorWriteNode.
Definition ast.h:3293
ConstantPathOrWriteNode.
Definition ast.h:3330
ConstantPathTargetNode.
Definition ast.h:3362
ConstantPathWriteNode.
Definition ast.h:3405
ConstantReadNode.
Definition ast.h:3455
ConstantTargetNode.
Definition ast.h:3483
ConstantWriteNode.
Definition ast.h:3505
DefNode.
Definition ast.h:3567
DefinedNode.
Definition ast.h:3644
ElseNode.
Definition ast.h:3681
EmbeddedStatementsNode.
Definition ast.h:3713
EmbeddedVariableNode.
Definition ast.h:3745
EnsureNode.
Definition ast.h:3776
ErrorRecoveryNode.
Definition ast.h:3805
FalseNode.
Definition ast.h:3829
FindPatternNode.
Definition ast.h:3855
FlipFlopNode.
Definition ast.h:3950
FloatNode.
Definition ast.h:3982
ForNode.
Definition ast.h:4006
ForwardingArgumentsNode.
Definition ast.h:4097
ForwardingParameterNode.
Definition ast.h:4115
ForwardingSuperNode.
Definition ast.h:4137
GlobalVariableAndWriteNode.
Definition ast.h:4172
GlobalVariableOperatorWriteNode.
Definition ast.h:4209
GlobalVariableOrWriteNode.
Definition ast.h:4251
GlobalVariableReadNode.
Definition ast.h:4288
GlobalVariableTargetNode.
Definition ast.h:4316
GlobalVariableWriteNode.
Definition ast.h:4338
HashNode.
Definition ast.h:4399
HashPatternNode.
Definition ast.h:4458
IfNode.
Definition ast.h:4546
ImaginaryNode.
Definition ast.h:4651
ImplicitNode.
Definition ast.h:4679
ImplicitRestNode.
Definition ast.h:4710
InNode.
Definition ast.h:4727
IndexAndWriteNode.
Definition ast.h:4770
IndexOperatorWriteNode.
Definition ast.h:4833
IndexOrWriteNode.
Definition ast.h:4901
IndexTargetNode.
Definition ast.h:4972
InstanceVariableAndWriteNode.
Definition ast.h:5014
InstanceVariableOperatorWriteNode.
Definition ast.h:5051
InstanceVariableOrWriteNode.
Definition ast.h:5093
InstanceVariableReadNode.
Definition ast.h:5130
InstanceVariableTargetNode.
Definition ast.h:5158
InstanceVariableWriteNode.
Definition ast.h:5180
IntegerNode.
Definition ast.h:5247
InterpolatedMatchLastLineNode.
Definition ast.h:5284
InterpolatedRegularExpressionNode.
Definition ast.h:5329
InterpolatedStringNode.
Definition ast.h:5365
InterpolatedSymbolNode.
Definition ast.h:5397
InterpolatedXStringNode.
Definition ast.h:5429
ItLocalVariableReadNode.
Definition ast.h:5461
ItParametersNode.
Definition ast.h:5478
KeywordHashNode.
Definition ast.h:5498
KeywordRestParameterNode.
Definition ast.h:5524
LambdaNode.
Definition ast.h:5556
LocalVariableAndWriteNode.
Definition ast.h:5603
LocalVariableOperatorWriteNode.
Definition ast.h:5645
LocalVariableOrWriteNode.
Definition ast.h:5692
LocalVariableReadNode.
Definition ast.h:5734
LocalVariableTargetNode.
Definition ast.h:5782
LocalVariableWriteNode.
Definition ast.h:5809
MatchLastLineNode.
Definition ast.h:5900
MatchPredicateNode.
Definition ast.h:5937
MatchRequiredNode.
Definition ast.h:5969
MatchWriteNode.
Definition ast.h:6055
ModuleNode.
Definition ast.h:6082
MultiTargetNode.
Definition ast.h:6134
MultiWriteNode.
Definition ast.h:6216
NextNode.
Definition ast.h:6318
NilNode.
Definition ast.h:6345
NoBlockParameterNode.
Definition ast.h:6363
NoKeywordsParameterNode.
Definition ast.h:6391
NumberedParametersNode.
Definition ast.h:6418
NumberedReferenceReadNode.
Definition ast.h:6440
OptionalKeywordParameterNode.
Definition ast.h:6474
OptionalParameterNode.
Definition ast.h:6510
OrNode.
Definition ast.h:6547
ParametersNode.
Definition ast.h:6601
ParenthesesNode.
Definition ast.h:6656
PinnedExpressionNode.
Definition ast.h:6688
PinnedVariableNode.
Definition ast.h:6745
PostExecutionNode.
Definition ast.h:6782
PreExecutionNode.
Definition ast.h:6819
ProgramNode.
Definition ast.h:6853
RangeNode.
Definition ast.h:6886
RationalNode.
Definition ast.h:6943
RedoNode.
Definition ast.h:6978
RegularExpressionNode.
Definition ast.h:7008
RequiredKeywordParameterNode.
Definition ast.h:7049
RequiredParameterNode.
Definition ast.h:7080
RescueModifierNode.
Definition ast.h:7102
RescueNode.
Definition ast.h:7139
RestParameterNode.
Definition ast.h:7195
RetryNode.
Definition ast.h:7227
ReturnNode.
Definition ast.h:7244
SelfNode.
Definition ast.h:7271
ShareableConstantNode.
Definition ast.h:7294
SingletonClassNode.
Definition ast.h:7318
SourceEncodingNode.
Definition ast.h:7365
SourceFileNode.
Definition ast.h:7388
SourceLineNode.
Definition ast.h:7412
SplatNode.
Definition ast.h:7429
StatementsNode.
Definition ast.h:7456
StringNode.
Definition ast.h:7490
SuperNode.
Definition ast.h:7532
SymbolNode.
Definition ast.h:7584
TrueNode.
Definition ast.h:7621
UndefNode.
Definition ast.h:7638
UnlessNode.
Definition ast.h:7668
UntilNode.
Definition ast.h:7758
WhenNode.
Definition ast.h:7802
WhileNode.
Definition ast.h:7845
XStringNode.
Definition ast.h:7891
YieldNode.
Definition ast.h:7928
Maps a node struct to its node type, as in node_type<pm_call_node_t>::value being PM_CALL_NODE.
Definition node_type.hpp:22