prism 2.0.0.rc1-x86_64-linux-gnu → 2.0.0-x86_64-linux-gnu
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/CHANGELOG.md +13 -2
- data/CODE_OF_CONDUCT.md +1 -1
- data/LICENSE.md +1 -1
- data/docs/serialization.md +20 -6
- data/ext/prism/api_node.c +81 -81
- data/ext/prism/extension.c +54 -69
- data/ext/prism/extension.h +1 -1
- data/include/prism/arena.h +8 -0
- data/include/prism/arena.hpp +42 -0
- data/include/prism/ast.h +11 -1
- data/include/prism/ast.hpp +641 -0
- data/include/prism/buffer.h +8 -0
- data/include/prism/buffer.hpp +55 -0
- data/include/prism/comments.h +17 -0
- data/include/prism/compiler/accel.h +3 -1
- data/include/prism/compiler/branch.h +26 -0
- data/include/prism/compiler/bswap.h +46 -0
- data/include/prism/compiler/cplusplus.hpp +16 -0
- data/include/prism/compiler/endianness.h +34 -0
- data/include/prism/compiler/exceptions.hpp +17 -0
- data/include/prism/compiler/format.h +2 -0
- data/include/prism/compiler/lifetimebound.hpp +25 -0
- data/include/prism/constant_pool.h +25 -0
- data/include/prism/diagnostic.h +18 -0
- data/include/prism/errors_format.h +8 -0
- data/include/prism/internal/buffer.h +3 -0
- data/include/prism/internal/node.h +8 -4
- data/include/prism/internal/parser.h +20 -0
- data/include/prism/internal/stringy.h +1 -6
- data/include/prism/internal/xxh3.h +16 -0
- data/include/prism/json.h +8 -0
- data/include/prism/line_offset_list.h +8 -0
- data/include/prism/magic_comments.h +18 -0
- data/include/prism/node.h +55 -10
- data/include/prism/node.hpp +272 -0
- data/include/prism/node_type.hpp +38 -0
- data/include/prism/options.h +10 -1
- data/include/prism/options.hpp +43 -0
- data/include/prism/parser.h +93 -64
- data/include/prism/parser.hpp +274 -0
- data/include/prism/prettyprint.h +8 -0
- data/include/prism/serialize.h +8 -0
- data/include/prism/source.h +8 -0
- data/include/prism/stream.h +8 -0
- data/include/prism/string_query.h +19 -0
- data/include/prism/stringy.h +16 -27
- data/include/prism/stringy.hpp +31 -0
- data/include/prism/version.h +9 -1
- data/include/prism.h +0 -8
- data/include/prism.hpp +24 -0
- data/lib/prism/3.3/prism.so +0 -0
- data/lib/prism/3.4/prism.so +0 -0
- data/lib/prism/4.0/prism.so +0 -0
- data/lib/prism/ffi.rb +6 -0
- data/lib/prism/node.rb +736 -0
- data/lib/prism/parse_result.rb +23 -8
- data/lib/prism/serialize.rb +2567 -3286
- data/lib/prism/string_query.rb +8 -0
- data/prism.gemspec +21 -4
- data/rbi/generated/prism/node.rbi +2430 -968
- data/rbi/generated/prism/parse_result.rbi +16 -4
- data/rbi/generated/prism/serialize.rbi +8 -4
- data/rbi/generated/prism/string_query.rbi +7 -0
- data/sig/generated/prism/node.rbs +2439 -967
- data/sig/generated/prism/parse_result.rbs +16 -4
- data/sig/generated/prism/serialize.rbs +9 -4
- data/sig/generated/prism/string_query.rbs +7 -0
- data/src/buffer.c +9 -0
- data/src/comments.c +2 -2
- data/src/diagnostic.c +8 -0
- data/src/node.c +216 -368
- data/src/options.c +7 -13
- data/src/parser.c +70 -48
- data/src/prism.c +581 -419
- data/src/regexp.c +0 -1
- data/src/serialize.c +2301 -1950
- data/src/source.c +8 -2
- data/src/string_query.c +14 -0
- data/src/stringy.c +3 -33
- data/src/xxh3.c +292 -0
- metadata +20 -3
|
@@ -0,0 +1,641 @@
|
|
|
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.hpp.erb */
|
|
5
|
+
/* if you are looking to modify the */
|
|
6
|
+
/* template */
|
|
7
|
+
/*----------------------------------------------------------------------------*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @file ast.hpp
|
|
11
|
+
*
|
|
12
|
+
* The mapping between node structs and node types, generated from the same
|
|
13
|
+
* configuration as ast.h so that it covers every node.
|
|
14
|
+
*/
|
|
15
|
+
#ifndef PRISM_AST_HPP
|
|
16
|
+
#define PRISM_AST_HPP
|
|
17
|
+
|
|
18
|
+
#include "prism/compiler/cplusplus.hpp"
|
|
19
|
+
|
|
20
|
+
#include "prism/ast.h"
|
|
21
|
+
#include "prism/node_type.hpp"
|
|
22
|
+
|
|
23
|
+
#include <cstddef>
|
|
24
|
+
#include <type_traits>
|
|
25
|
+
|
|
26
|
+
namespace prism {
|
|
27
|
+
|
|
28
|
+
/* Each node struct is cast to and from pm_node_t, which C++ allows only
|
|
29
|
+
* because the struct is standard-layout with pm_node_t as its first member. */
|
|
30
|
+
|
|
31
|
+
/** Maps pm_alias_global_variable_node_t to PM_ALIAS_GLOBAL_VARIABLE_NODE. */
|
|
32
|
+
template <> struct node_type<pm_alias_global_variable_node_t> : std::integral_constant<pm_node_type_t, PM_ALIAS_GLOBAL_VARIABLE_NODE> {};
|
|
33
|
+
static_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");
|
|
34
|
+
|
|
35
|
+
/** Maps pm_alias_method_node_t to PM_ALIAS_METHOD_NODE. */
|
|
36
|
+
template <> struct node_type<pm_alias_method_node_t> : std::integral_constant<pm_node_type_t, PM_ALIAS_METHOD_NODE> {};
|
|
37
|
+
static_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");
|
|
38
|
+
|
|
39
|
+
/** Maps pm_alternation_pattern_node_t to PM_ALTERNATION_PATTERN_NODE. */
|
|
40
|
+
template <> struct node_type<pm_alternation_pattern_node_t> : std::integral_constant<pm_node_type_t, PM_ALTERNATION_PATTERN_NODE> {};
|
|
41
|
+
static_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");
|
|
42
|
+
|
|
43
|
+
/** Maps pm_and_node_t to PM_AND_NODE. */
|
|
44
|
+
template <> struct node_type<pm_and_node_t> : std::integral_constant<pm_node_type_t, PM_AND_NODE> {};
|
|
45
|
+
static_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");
|
|
46
|
+
|
|
47
|
+
/** Maps pm_arguments_node_t to PM_ARGUMENTS_NODE. */
|
|
48
|
+
template <> struct node_type<pm_arguments_node_t> : std::integral_constant<pm_node_type_t, PM_ARGUMENTS_NODE> {};
|
|
49
|
+
static_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");
|
|
50
|
+
|
|
51
|
+
/** Maps pm_array_node_t to PM_ARRAY_NODE. */
|
|
52
|
+
template <> struct node_type<pm_array_node_t> : std::integral_constant<pm_node_type_t, PM_ARRAY_NODE> {};
|
|
53
|
+
static_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");
|
|
54
|
+
|
|
55
|
+
/** Maps pm_array_pattern_node_t to PM_ARRAY_PATTERN_NODE. */
|
|
56
|
+
template <> struct node_type<pm_array_pattern_node_t> : std::integral_constant<pm_node_type_t, PM_ARRAY_PATTERN_NODE> {};
|
|
57
|
+
static_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");
|
|
58
|
+
|
|
59
|
+
/** Maps pm_assoc_node_t to PM_ASSOC_NODE. */
|
|
60
|
+
template <> struct node_type<pm_assoc_node_t> : std::integral_constant<pm_node_type_t, PM_ASSOC_NODE> {};
|
|
61
|
+
static_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");
|
|
62
|
+
|
|
63
|
+
/** Maps pm_assoc_splat_node_t to PM_ASSOC_SPLAT_NODE. */
|
|
64
|
+
template <> struct node_type<pm_assoc_splat_node_t> : std::integral_constant<pm_node_type_t, PM_ASSOC_SPLAT_NODE> {};
|
|
65
|
+
static_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");
|
|
66
|
+
|
|
67
|
+
/** Maps pm_back_reference_read_node_t to PM_BACK_REFERENCE_READ_NODE. */
|
|
68
|
+
template <> struct node_type<pm_back_reference_read_node_t> : std::integral_constant<pm_node_type_t, PM_BACK_REFERENCE_READ_NODE> {};
|
|
69
|
+
static_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");
|
|
70
|
+
|
|
71
|
+
/** Maps pm_begin_node_t to PM_BEGIN_NODE. */
|
|
72
|
+
template <> struct node_type<pm_begin_node_t> : std::integral_constant<pm_node_type_t, PM_BEGIN_NODE> {};
|
|
73
|
+
static_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");
|
|
74
|
+
|
|
75
|
+
/** Maps pm_block_argument_node_t to PM_BLOCK_ARGUMENT_NODE. */
|
|
76
|
+
template <> struct node_type<pm_block_argument_node_t> : std::integral_constant<pm_node_type_t, PM_BLOCK_ARGUMENT_NODE> {};
|
|
77
|
+
static_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");
|
|
78
|
+
|
|
79
|
+
/** Maps pm_block_local_variable_node_t to PM_BLOCK_LOCAL_VARIABLE_NODE. */
|
|
80
|
+
template <> struct node_type<pm_block_local_variable_node_t> : std::integral_constant<pm_node_type_t, PM_BLOCK_LOCAL_VARIABLE_NODE> {};
|
|
81
|
+
static_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");
|
|
82
|
+
|
|
83
|
+
/** Maps pm_block_node_t to PM_BLOCK_NODE. */
|
|
84
|
+
template <> struct node_type<pm_block_node_t> : std::integral_constant<pm_node_type_t, PM_BLOCK_NODE> {};
|
|
85
|
+
static_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");
|
|
86
|
+
|
|
87
|
+
/** Maps pm_block_parameter_node_t to PM_BLOCK_PARAMETER_NODE. */
|
|
88
|
+
template <> struct node_type<pm_block_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_BLOCK_PARAMETER_NODE> {};
|
|
89
|
+
static_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");
|
|
90
|
+
|
|
91
|
+
/** Maps pm_block_parameters_node_t to PM_BLOCK_PARAMETERS_NODE. */
|
|
92
|
+
template <> struct node_type<pm_block_parameters_node_t> : std::integral_constant<pm_node_type_t, PM_BLOCK_PARAMETERS_NODE> {};
|
|
93
|
+
static_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");
|
|
94
|
+
|
|
95
|
+
/** Maps pm_break_node_t to PM_BREAK_NODE. */
|
|
96
|
+
template <> struct node_type<pm_break_node_t> : std::integral_constant<pm_node_type_t, PM_BREAK_NODE> {};
|
|
97
|
+
static_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");
|
|
98
|
+
|
|
99
|
+
/** Maps pm_call_and_write_node_t to PM_CALL_AND_WRITE_NODE. */
|
|
100
|
+
template <> struct node_type<pm_call_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_CALL_AND_WRITE_NODE> {};
|
|
101
|
+
static_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");
|
|
102
|
+
|
|
103
|
+
/** Maps pm_call_node_t to PM_CALL_NODE. */
|
|
104
|
+
template <> struct node_type<pm_call_node_t> : std::integral_constant<pm_node_type_t, PM_CALL_NODE> {};
|
|
105
|
+
static_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");
|
|
106
|
+
|
|
107
|
+
/** Maps pm_call_operator_write_node_t to PM_CALL_OPERATOR_WRITE_NODE. */
|
|
108
|
+
template <> struct node_type<pm_call_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_CALL_OPERATOR_WRITE_NODE> {};
|
|
109
|
+
static_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");
|
|
110
|
+
|
|
111
|
+
/** Maps pm_call_or_write_node_t to PM_CALL_OR_WRITE_NODE. */
|
|
112
|
+
template <> struct node_type<pm_call_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_CALL_OR_WRITE_NODE> {};
|
|
113
|
+
static_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");
|
|
114
|
+
|
|
115
|
+
/** Maps pm_call_target_node_t to PM_CALL_TARGET_NODE. */
|
|
116
|
+
template <> struct node_type<pm_call_target_node_t> : std::integral_constant<pm_node_type_t, PM_CALL_TARGET_NODE> {};
|
|
117
|
+
static_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");
|
|
118
|
+
|
|
119
|
+
/** Maps pm_capture_pattern_node_t to PM_CAPTURE_PATTERN_NODE. */
|
|
120
|
+
template <> struct node_type<pm_capture_pattern_node_t> : std::integral_constant<pm_node_type_t, PM_CAPTURE_PATTERN_NODE> {};
|
|
121
|
+
static_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");
|
|
122
|
+
|
|
123
|
+
/** Maps pm_case_match_node_t to PM_CASE_MATCH_NODE. */
|
|
124
|
+
template <> struct node_type<pm_case_match_node_t> : std::integral_constant<pm_node_type_t, PM_CASE_MATCH_NODE> {};
|
|
125
|
+
static_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");
|
|
126
|
+
|
|
127
|
+
/** Maps pm_case_node_t to PM_CASE_NODE. */
|
|
128
|
+
template <> struct node_type<pm_case_node_t> : std::integral_constant<pm_node_type_t, PM_CASE_NODE> {};
|
|
129
|
+
static_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");
|
|
130
|
+
|
|
131
|
+
/** Maps pm_class_node_t to PM_CLASS_NODE. */
|
|
132
|
+
template <> struct node_type<pm_class_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_NODE> {};
|
|
133
|
+
static_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");
|
|
134
|
+
|
|
135
|
+
/** Maps pm_class_variable_and_write_node_t to PM_CLASS_VARIABLE_AND_WRITE_NODE. */
|
|
136
|
+
template <> struct node_type<pm_class_variable_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_AND_WRITE_NODE> {};
|
|
137
|
+
static_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");
|
|
138
|
+
|
|
139
|
+
/** Maps pm_class_variable_operator_write_node_t to PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE. */
|
|
140
|
+
template <> struct node_type<pm_class_variable_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE> {};
|
|
141
|
+
static_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");
|
|
142
|
+
|
|
143
|
+
/** Maps pm_class_variable_or_write_node_t to PM_CLASS_VARIABLE_OR_WRITE_NODE. */
|
|
144
|
+
template <> struct node_type<pm_class_variable_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_OR_WRITE_NODE> {};
|
|
145
|
+
static_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");
|
|
146
|
+
|
|
147
|
+
/** Maps pm_class_variable_read_node_t to PM_CLASS_VARIABLE_READ_NODE. */
|
|
148
|
+
template <> struct node_type<pm_class_variable_read_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_READ_NODE> {};
|
|
149
|
+
static_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");
|
|
150
|
+
|
|
151
|
+
/** Maps pm_class_variable_target_node_t to PM_CLASS_VARIABLE_TARGET_NODE. */
|
|
152
|
+
template <> struct node_type<pm_class_variable_target_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_TARGET_NODE> {};
|
|
153
|
+
static_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");
|
|
154
|
+
|
|
155
|
+
/** Maps pm_class_variable_write_node_t to PM_CLASS_VARIABLE_WRITE_NODE. */
|
|
156
|
+
template <> struct node_type<pm_class_variable_write_node_t> : std::integral_constant<pm_node_type_t, PM_CLASS_VARIABLE_WRITE_NODE> {};
|
|
157
|
+
static_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");
|
|
158
|
+
|
|
159
|
+
/** Maps pm_constant_and_write_node_t to PM_CONSTANT_AND_WRITE_NODE. */
|
|
160
|
+
template <> struct node_type<pm_constant_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_AND_WRITE_NODE> {};
|
|
161
|
+
static_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");
|
|
162
|
+
|
|
163
|
+
/** Maps pm_constant_operator_write_node_t to PM_CONSTANT_OPERATOR_WRITE_NODE. */
|
|
164
|
+
template <> struct node_type<pm_constant_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_OPERATOR_WRITE_NODE> {};
|
|
165
|
+
static_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");
|
|
166
|
+
|
|
167
|
+
/** Maps pm_constant_or_write_node_t to PM_CONSTANT_OR_WRITE_NODE. */
|
|
168
|
+
template <> struct node_type<pm_constant_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_OR_WRITE_NODE> {};
|
|
169
|
+
static_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");
|
|
170
|
+
|
|
171
|
+
/** Maps pm_constant_path_and_write_node_t to PM_CONSTANT_PATH_AND_WRITE_NODE. */
|
|
172
|
+
template <> struct node_type<pm_constant_path_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_AND_WRITE_NODE> {};
|
|
173
|
+
static_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");
|
|
174
|
+
|
|
175
|
+
/** Maps pm_constant_path_node_t to PM_CONSTANT_PATH_NODE. */
|
|
176
|
+
template <> struct node_type<pm_constant_path_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_NODE> {};
|
|
177
|
+
static_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");
|
|
178
|
+
|
|
179
|
+
/** Maps pm_constant_path_operator_write_node_t to PM_CONSTANT_PATH_OPERATOR_WRITE_NODE. */
|
|
180
|
+
template <> struct node_type<pm_constant_path_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_OPERATOR_WRITE_NODE> {};
|
|
181
|
+
static_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");
|
|
182
|
+
|
|
183
|
+
/** Maps pm_constant_path_or_write_node_t to PM_CONSTANT_PATH_OR_WRITE_NODE. */
|
|
184
|
+
template <> struct node_type<pm_constant_path_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_OR_WRITE_NODE> {};
|
|
185
|
+
static_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");
|
|
186
|
+
|
|
187
|
+
/** Maps pm_constant_path_target_node_t to PM_CONSTANT_PATH_TARGET_NODE. */
|
|
188
|
+
template <> struct node_type<pm_constant_path_target_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_TARGET_NODE> {};
|
|
189
|
+
static_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");
|
|
190
|
+
|
|
191
|
+
/** Maps pm_constant_path_write_node_t to PM_CONSTANT_PATH_WRITE_NODE. */
|
|
192
|
+
template <> struct node_type<pm_constant_path_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_PATH_WRITE_NODE> {};
|
|
193
|
+
static_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");
|
|
194
|
+
|
|
195
|
+
/** Maps pm_constant_read_node_t to PM_CONSTANT_READ_NODE. */
|
|
196
|
+
template <> struct node_type<pm_constant_read_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_READ_NODE> {};
|
|
197
|
+
static_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");
|
|
198
|
+
|
|
199
|
+
/** Maps pm_constant_target_node_t to PM_CONSTANT_TARGET_NODE. */
|
|
200
|
+
template <> struct node_type<pm_constant_target_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_TARGET_NODE> {};
|
|
201
|
+
static_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");
|
|
202
|
+
|
|
203
|
+
/** Maps pm_constant_write_node_t to PM_CONSTANT_WRITE_NODE. */
|
|
204
|
+
template <> struct node_type<pm_constant_write_node_t> : std::integral_constant<pm_node_type_t, PM_CONSTANT_WRITE_NODE> {};
|
|
205
|
+
static_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");
|
|
206
|
+
|
|
207
|
+
/** Maps pm_def_node_t to PM_DEF_NODE. */
|
|
208
|
+
template <> struct node_type<pm_def_node_t> : std::integral_constant<pm_node_type_t, PM_DEF_NODE> {};
|
|
209
|
+
static_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");
|
|
210
|
+
|
|
211
|
+
/** Maps pm_defined_node_t to PM_DEFINED_NODE. */
|
|
212
|
+
template <> struct node_type<pm_defined_node_t> : std::integral_constant<pm_node_type_t, PM_DEFINED_NODE> {};
|
|
213
|
+
static_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");
|
|
214
|
+
|
|
215
|
+
/** Maps pm_else_node_t to PM_ELSE_NODE. */
|
|
216
|
+
template <> struct node_type<pm_else_node_t> : std::integral_constant<pm_node_type_t, PM_ELSE_NODE> {};
|
|
217
|
+
static_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");
|
|
218
|
+
|
|
219
|
+
/** Maps pm_embedded_statements_node_t to PM_EMBEDDED_STATEMENTS_NODE. */
|
|
220
|
+
template <> struct node_type<pm_embedded_statements_node_t> : std::integral_constant<pm_node_type_t, PM_EMBEDDED_STATEMENTS_NODE> {};
|
|
221
|
+
static_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");
|
|
222
|
+
|
|
223
|
+
/** Maps pm_embedded_variable_node_t to PM_EMBEDDED_VARIABLE_NODE. */
|
|
224
|
+
template <> struct node_type<pm_embedded_variable_node_t> : std::integral_constant<pm_node_type_t, PM_EMBEDDED_VARIABLE_NODE> {};
|
|
225
|
+
static_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");
|
|
226
|
+
|
|
227
|
+
/** Maps pm_ensure_node_t to PM_ENSURE_NODE. */
|
|
228
|
+
template <> struct node_type<pm_ensure_node_t> : std::integral_constant<pm_node_type_t, PM_ENSURE_NODE> {};
|
|
229
|
+
static_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");
|
|
230
|
+
|
|
231
|
+
/** Maps pm_error_recovery_node_t to PM_ERROR_RECOVERY_NODE. */
|
|
232
|
+
template <> struct node_type<pm_error_recovery_node_t> : std::integral_constant<pm_node_type_t, PM_ERROR_RECOVERY_NODE> {};
|
|
233
|
+
static_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");
|
|
234
|
+
|
|
235
|
+
/** Maps pm_false_node_t to PM_FALSE_NODE. */
|
|
236
|
+
template <> struct node_type<pm_false_node_t> : std::integral_constant<pm_node_type_t, PM_FALSE_NODE> {};
|
|
237
|
+
static_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");
|
|
238
|
+
|
|
239
|
+
/** Maps pm_find_pattern_node_t to PM_FIND_PATTERN_NODE. */
|
|
240
|
+
template <> struct node_type<pm_find_pattern_node_t> : std::integral_constant<pm_node_type_t, PM_FIND_PATTERN_NODE> {};
|
|
241
|
+
static_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");
|
|
242
|
+
|
|
243
|
+
/** Maps pm_flip_flop_node_t to PM_FLIP_FLOP_NODE. */
|
|
244
|
+
template <> struct node_type<pm_flip_flop_node_t> : std::integral_constant<pm_node_type_t, PM_FLIP_FLOP_NODE> {};
|
|
245
|
+
static_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");
|
|
246
|
+
|
|
247
|
+
/** Maps pm_float_node_t to PM_FLOAT_NODE. */
|
|
248
|
+
template <> struct node_type<pm_float_node_t> : std::integral_constant<pm_node_type_t, PM_FLOAT_NODE> {};
|
|
249
|
+
static_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");
|
|
250
|
+
|
|
251
|
+
/** Maps pm_for_node_t to PM_FOR_NODE. */
|
|
252
|
+
template <> struct node_type<pm_for_node_t> : std::integral_constant<pm_node_type_t, PM_FOR_NODE> {};
|
|
253
|
+
static_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");
|
|
254
|
+
|
|
255
|
+
/** Maps pm_forwarding_arguments_node_t to PM_FORWARDING_ARGUMENTS_NODE. */
|
|
256
|
+
template <> struct node_type<pm_forwarding_arguments_node_t> : std::integral_constant<pm_node_type_t, PM_FORWARDING_ARGUMENTS_NODE> {};
|
|
257
|
+
static_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");
|
|
258
|
+
|
|
259
|
+
/** Maps pm_forwarding_parameter_node_t to PM_FORWARDING_PARAMETER_NODE. */
|
|
260
|
+
template <> struct node_type<pm_forwarding_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_FORWARDING_PARAMETER_NODE> {};
|
|
261
|
+
static_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");
|
|
262
|
+
|
|
263
|
+
/** Maps pm_forwarding_super_node_t to PM_FORWARDING_SUPER_NODE. */
|
|
264
|
+
template <> struct node_type<pm_forwarding_super_node_t> : std::integral_constant<pm_node_type_t, PM_FORWARDING_SUPER_NODE> {};
|
|
265
|
+
static_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");
|
|
266
|
+
|
|
267
|
+
/** Maps pm_global_variable_and_write_node_t to PM_GLOBAL_VARIABLE_AND_WRITE_NODE. */
|
|
268
|
+
template <> struct node_type<pm_global_variable_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_AND_WRITE_NODE> {};
|
|
269
|
+
static_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");
|
|
270
|
+
|
|
271
|
+
/** Maps pm_global_variable_operator_write_node_t to PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE. */
|
|
272
|
+
template <> struct node_type<pm_global_variable_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE> {};
|
|
273
|
+
static_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");
|
|
274
|
+
|
|
275
|
+
/** Maps pm_global_variable_or_write_node_t to PM_GLOBAL_VARIABLE_OR_WRITE_NODE. */
|
|
276
|
+
template <> struct node_type<pm_global_variable_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_OR_WRITE_NODE> {};
|
|
277
|
+
static_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");
|
|
278
|
+
|
|
279
|
+
/** Maps pm_global_variable_read_node_t to PM_GLOBAL_VARIABLE_READ_NODE. */
|
|
280
|
+
template <> struct node_type<pm_global_variable_read_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_READ_NODE> {};
|
|
281
|
+
static_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");
|
|
282
|
+
|
|
283
|
+
/** Maps pm_global_variable_target_node_t to PM_GLOBAL_VARIABLE_TARGET_NODE. */
|
|
284
|
+
template <> struct node_type<pm_global_variable_target_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_TARGET_NODE> {};
|
|
285
|
+
static_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");
|
|
286
|
+
|
|
287
|
+
/** Maps pm_global_variable_write_node_t to PM_GLOBAL_VARIABLE_WRITE_NODE. */
|
|
288
|
+
template <> struct node_type<pm_global_variable_write_node_t> : std::integral_constant<pm_node_type_t, PM_GLOBAL_VARIABLE_WRITE_NODE> {};
|
|
289
|
+
static_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");
|
|
290
|
+
|
|
291
|
+
/** Maps pm_hash_node_t to PM_HASH_NODE. */
|
|
292
|
+
template <> struct node_type<pm_hash_node_t> : std::integral_constant<pm_node_type_t, PM_HASH_NODE> {};
|
|
293
|
+
static_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");
|
|
294
|
+
|
|
295
|
+
/** Maps pm_hash_pattern_node_t to PM_HASH_PATTERN_NODE. */
|
|
296
|
+
template <> struct node_type<pm_hash_pattern_node_t> : std::integral_constant<pm_node_type_t, PM_HASH_PATTERN_NODE> {};
|
|
297
|
+
static_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");
|
|
298
|
+
|
|
299
|
+
/** Maps pm_if_node_t to PM_IF_NODE. */
|
|
300
|
+
template <> struct node_type<pm_if_node_t> : std::integral_constant<pm_node_type_t, PM_IF_NODE> {};
|
|
301
|
+
static_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");
|
|
302
|
+
|
|
303
|
+
/** Maps pm_imaginary_node_t to PM_IMAGINARY_NODE. */
|
|
304
|
+
template <> struct node_type<pm_imaginary_node_t> : std::integral_constant<pm_node_type_t, PM_IMAGINARY_NODE> {};
|
|
305
|
+
static_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");
|
|
306
|
+
|
|
307
|
+
/** Maps pm_implicit_node_t to PM_IMPLICIT_NODE. */
|
|
308
|
+
template <> struct node_type<pm_implicit_node_t> : std::integral_constant<pm_node_type_t, PM_IMPLICIT_NODE> {};
|
|
309
|
+
static_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");
|
|
310
|
+
|
|
311
|
+
/** Maps pm_implicit_rest_node_t to PM_IMPLICIT_REST_NODE. */
|
|
312
|
+
template <> struct node_type<pm_implicit_rest_node_t> : std::integral_constant<pm_node_type_t, PM_IMPLICIT_REST_NODE> {};
|
|
313
|
+
static_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");
|
|
314
|
+
|
|
315
|
+
/** Maps pm_in_node_t to PM_IN_NODE. */
|
|
316
|
+
template <> struct node_type<pm_in_node_t> : std::integral_constant<pm_node_type_t, PM_IN_NODE> {};
|
|
317
|
+
static_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");
|
|
318
|
+
|
|
319
|
+
/** Maps pm_index_and_write_node_t to PM_INDEX_AND_WRITE_NODE. */
|
|
320
|
+
template <> struct node_type<pm_index_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_INDEX_AND_WRITE_NODE> {};
|
|
321
|
+
static_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");
|
|
322
|
+
|
|
323
|
+
/** Maps pm_index_operator_write_node_t to PM_INDEX_OPERATOR_WRITE_NODE. */
|
|
324
|
+
template <> struct node_type<pm_index_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_INDEX_OPERATOR_WRITE_NODE> {};
|
|
325
|
+
static_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");
|
|
326
|
+
|
|
327
|
+
/** Maps pm_index_or_write_node_t to PM_INDEX_OR_WRITE_NODE. */
|
|
328
|
+
template <> struct node_type<pm_index_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_INDEX_OR_WRITE_NODE> {};
|
|
329
|
+
static_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");
|
|
330
|
+
|
|
331
|
+
/** Maps pm_index_target_node_t to PM_INDEX_TARGET_NODE. */
|
|
332
|
+
template <> struct node_type<pm_index_target_node_t> : std::integral_constant<pm_node_type_t, PM_INDEX_TARGET_NODE> {};
|
|
333
|
+
static_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");
|
|
334
|
+
|
|
335
|
+
/** Maps pm_instance_variable_and_write_node_t to PM_INSTANCE_VARIABLE_AND_WRITE_NODE. */
|
|
336
|
+
template <> struct node_type<pm_instance_variable_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_AND_WRITE_NODE> {};
|
|
337
|
+
static_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");
|
|
338
|
+
|
|
339
|
+
/** Maps pm_instance_variable_operator_write_node_t to PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE. */
|
|
340
|
+
template <> struct node_type<pm_instance_variable_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE> {};
|
|
341
|
+
static_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");
|
|
342
|
+
|
|
343
|
+
/** Maps pm_instance_variable_or_write_node_t to PM_INSTANCE_VARIABLE_OR_WRITE_NODE. */
|
|
344
|
+
template <> struct node_type<pm_instance_variable_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_OR_WRITE_NODE> {};
|
|
345
|
+
static_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");
|
|
346
|
+
|
|
347
|
+
/** Maps pm_instance_variable_read_node_t to PM_INSTANCE_VARIABLE_READ_NODE. */
|
|
348
|
+
template <> struct node_type<pm_instance_variable_read_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_READ_NODE> {};
|
|
349
|
+
static_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");
|
|
350
|
+
|
|
351
|
+
/** Maps pm_instance_variable_target_node_t to PM_INSTANCE_VARIABLE_TARGET_NODE. */
|
|
352
|
+
template <> struct node_type<pm_instance_variable_target_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_TARGET_NODE> {};
|
|
353
|
+
static_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");
|
|
354
|
+
|
|
355
|
+
/** Maps pm_instance_variable_write_node_t to PM_INSTANCE_VARIABLE_WRITE_NODE. */
|
|
356
|
+
template <> struct node_type<pm_instance_variable_write_node_t> : std::integral_constant<pm_node_type_t, PM_INSTANCE_VARIABLE_WRITE_NODE> {};
|
|
357
|
+
static_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");
|
|
358
|
+
|
|
359
|
+
/** Maps pm_integer_node_t to PM_INTEGER_NODE. */
|
|
360
|
+
template <> struct node_type<pm_integer_node_t> : std::integral_constant<pm_node_type_t, PM_INTEGER_NODE> {};
|
|
361
|
+
static_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");
|
|
362
|
+
|
|
363
|
+
/** Maps pm_interpolated_match_last_line_node_t to PM_INTERPOLATED_MATCH_LAST_LINE_NODE. */
|
|
364
|
+
template <> struct node_type<pm_interpolated_match_last_line_node_t> : std::integral_constant<pm_node_type_t, PM_INTERPOLATED_MATCH_LAST_LINE_NODE> {};
|
|
365
|
+
static_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");
|
|
366
|
+
|
|
367
|
+
/** Maps pm_interpolated_regular_expression_node_t to PM_INTERPOLATED_REGULAR_EXPRESSION_NODE. */
|
|
368
|
+
template <> struct node_type<pm_interpolated_regular_expression_node_t> : std::integral_constant<pm_node_type_t, PM_INTERPOLATED_REGULAR_EXPRESSION_NODE> {};
|
|
369
|
+
static_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");
|
|
370
|
+
|
|
371
|
+
/** Maps pm_interpolated_string_node_t to PM_INTERPOLATED_STRING_NODE. */
|
|
372
|
+
template <> struct node_type<pm_interpolated_string_node_t> : std::integral_constant<pm_node_type_t, PM_INTERPOLATED_STRING_NODE> {};
|
|
373
|
+
static_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");
|
|
374
|
+
|
|
375
|
+
/** Maps pm_interpolated_symbol_node_t to PM_INTERPOLATED_SYMBOL_NODE. */
|
|
376
|
+
template <> struct node_type<pm_interpolated_symbol_node_t> : std::integral_constant<pm_node_type_t, PM_INTERPOLATED_SYMBOL_NODE> {};
|
|
377
|
+
static_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");
|
|
378
|
+
|
|
379
|
+
/** Maps pm_interpolated_x_string_node_t to PM_INTERPOLATED_X_STRING_NODE. */
|
|
380
|
+
template <> struct node_type<pm_interpolated_x_string_node_t> : std::integral_constant<pm_node_type_t, PM_INTERPOLATED_X_STRING_NODE> {};
|
|
381
|
+
static_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");
|
|
382
|
+
|
|
383
|
+
/** Maps pm_it_local_variable_read_node_t to PM_IT_LOCAL_VARIABLE_READ_NODE. */
|
|
384
|
+
template <> struct node_type<pm_it_local_variable_read_node_t> : std::integral_constant<pm_node_type_t, PM_IT_LOCAL_VARIABLE_READ_NODE> {};
|
|
385
|
+
static_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");
|
|
386
|
+
|
|
387
|
+
/** Maps pm_it_parameters_node_t to PM_IT_PARAMETERS_NODE. */
|
|
388
|
+
template <> struct node_type<pm_it_parameters_node_t> : std::integral_constant<pm_node_type_t, PM_IT_PARAMETERS_NODE> {};
|
|
389
|
+
static_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");
|
|
390
|
+
|
|
391
|
+
/** Maps pm_keyword_hash_node_t to PM_KEYWORD_HASH_NODE. */
|
|
392
|
+
template <> struct node_type<pm_keyword_hash_node_t> : std::integral_constant<pm_node_type_t, PM_KEYWORD_HASH_NODE> {};
|
|
393
|
+
static_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");
|
|
394
|
+
|
|
395
|
+
/** Maps pm_keyword_rest_parameter_node_t to PM_KEYWORD_REST_PARAMETER_NODE. */
|
|
396
|
+
template <> struct node_type<pm_keyword_rest_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_KEYWORD_REST_PARAMETER_NODE> {};
|
|
397
|
+
static_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");
|
|
398
|
+
|
|
399
|
+
/** Maps pm_lambda_node_t to PM_LAMBDA_NODE. */
|
|
400
|
+
template <> struct node_type<pm_lambda_node_t> : std::integral_constant<pm_node_type_t, PM_LAMBDA_NODE> {};
|
|
401
|
+
static_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");
|
|
402
|
+
|
|
403
|
+
/** Maps pm_local_variable_and_write_node_t to PM_LOCAL_VARIABLE_AND_WRITE_NODE. */
|
|
404
|
+
template <> struct node_type<pm_local_variable_and_write_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_AND_WRITE_NODE> {};
|
|
405
|
+
static_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");
|
|
406
|
+
|
|
407
|
+
/** Maps pm_local_variable_operator_write_node_t to PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE. */
|
|
408
|
+
template <> struct node_type<pm_local_variable_operator_write_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE> {};
|
|
409
|
+
static_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");
|
|
410
|
+
|
|
411
|
+
/** Maps pm_local_variable_or_write_node_t to PM_LOCAL_VARIABLE_OR_WRITE_NODE. */
|
|
412
|
+
template <> struct node_type<pm_local_variable_or_write_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_OR_WRITE_NODE> {};
|
|
413
|
+
static_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");
|
|
414
|
+
|
|
415
|
+
/** Maps pm_local_variable_read_node_t to PM_LOCAL_VARIABLE_READ_NODE. */
|
|
416
|
+
template <> struct node_type<pm_local_variable_read_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_READ_NODE> {};
|
|
417
|
+
static_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");
|
|
418
|
+
|
|
419
|
+
/** Maps pm_local_variable_target_node_t to PM_LOCAL_VARIABLE_TARGET_NODE. */
|
|
420
|
+
template <> struct node_type<pm_local_variable_target_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_TARGET_NODE> {};
|
|
421
|
+
static_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");
|
|
422
|
+
|
|
423
|
+
/** Maps pm_local_variable_write_node_t to PM_LOCAL_VARIABLE_WRITE_NODE. */
|
|
424
|
+
template <> struct node_type<pm_local_variable_write_node_t> : std::integral_constant<pm_node_type_t, PM_LOCAL_VARIABLE_WRITE_NODE> {};
|
|
425
|
+
static_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");
|
|
426
|
+
|
|
427
|
+
/** Maps pm_match_last_line_node_t to PM_MATCH_LAST_LINE_NODE. */
|
|
428
|
+
template <> struct node_type<pm_match_last_line_node_t> : std::integral_constant<pm_node_type_t, PM_MATCH_LAST_LINE_NODE> {};
|
|
429
|
+
static_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");
|
|
430
|
+
|
|
431
|
+
/** Maps pm_match_predicate_node_t to PM_MATCH_PREDICATE_NODE. */
|
|
432
|
+
template <> struct node_type<pm_match_predicate_node_t> : std::integral_constant<pm_node_type_t, PM_MATCH_PREDICATE_NODE> {};
|
|
433
|
+
static_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");
|
|
434
|
+
|
|
435
|
+
/** Maps pm_match_required_node_t to PM_MATCH_REQUIRED_NODE. */
|
|
436
|
+
template <> struct node_type<pm_match_required_node_t> : std::integral_constant<pm_node_type_t, PM_MATCH_REQUIRED_NODE> {};
|
|
437
|
+
static_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");
|
|
438
|
+
|
|
439
|
+
/** Maps pm_match_write_node_t to PM_MATCH_WRITE_NODE. */
|
|
440
|
+
template <> struct node_type<pm_match_write_node_t> : std::integral_constant<pm_node_type_t, PM_MATCH_WRITE_NODE> {};
|
|
441
|
+
static_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");
|
|
442
|
+
|
|
443
|
+
/** Maps pm_module_node_t to PM_MODULE_NODE. */
|
|
444
|
+
template <> struct node_type<pm_module_node_t> : std::integral_constant<pm_node_type_t, PM_MODULE_NODE> {};
|
|
445
|
+
static_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");
|
|
446
|
+
|
|
447
|
+
/** Maps pm_multi_target_node_t to PM_MULTI_TARGET_NODE. */
|
|
448
|
+
template <> struct node_type<pm_multi_target_node_t> : std::integral_constant<pm_node_type_t, PM_MULTI_TARGET_NODE> {};
|
|
449
|
+
static_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");
|
|
450
|
+
|
|
451
|
+
/** Maps pm_multi_write_node_t to PM_MULTI_WRITE_NODE. */
|
|
452
|
+
template <> struct node_type<pm_multi_write_node_t> : std::integral_constant<pm_node_type_t, PM_MULTI_WRITE_NODE> {};
|
|
453
|
+
static_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");
|
|
454
|
+
|
|
455
|
+
/** Maps pm_next_node_t to PM_NEXT_NODE. */
|
|
456
|
+
template <> struct node_type<pm_next_node_t> : std::integral_constant<pm_node_type_t, PM_NEXT_NODE> {};
|
|
457
|
+
static_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");
|
|
458
|
+
|
|
459
|
+
/** Maps pm_nil_node_t to PM_NIL_NODE. */
|
|
460
|
+
template <> struct node_type<pm_nil_node_t> : std::integral_constant<pm_node_type_t, PM_NIL_NODE> {};
|
|
461
|
+
static_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");
|
|
462
|
+
|
|
463
|
+
/** Maps pm_no_block_parameter_node_t to PM_NO_BLOCK_PARAMETER_NODE. */
|
|
464
|
+
template <> struct node_type<pm_no_block_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_NO_BLOCK_PARAMETER_NODE> {};
|
|
465
|
+
static_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");
|
|
466
|
+
|
|
467
|
+
/** Maps pm_no_keywords_parameter_node_t to PM_NO_KEYWORDS_PARAMETER_NODE. */
|
|
468
|
+
template <> struct node_type<pm_no_keywords_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_NO_KEYWORDS_PARAMETER_NODE> {};
|
|
469
|
+
static_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");
|
|
470
|
+
|
|
471
|
+
/** Maps pm_numbered_parameters_node_t to PM_NUMBERED_PARAMETERS_NODE. */
|
|
472
|
+
template <> struct node_type<pm_numbered_parameters_node_t> : std::integral_constant<pm_node_type_t, PM_NUMBERED_PARAMETERS_NODE> {};
|
|
473
|
+
static_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");
|
|
474
|
+
|
|
475
|
+
/** Maps pm_numbered_reference_read_node_t to PM_NUMBERED_REFERENCE_READ_NODE. */
|
|
476
|
+
template <> struct node_type<pm_numbered_reference_read_node_t> : std::integral_constant<pm_node_type_t, PM_NUMBERED_REFERENCE_READ_NODE> {};
|
|
477
|
+
static_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");
|
|
478
|
+
|
|
479
|
+
/** Maps pm_optional_keyword_parameter_node_t to PM_OPTIONAL_KEYWORD_PARAMETER_NODE. */
|
|
480
|
+
template <> struct node_type<pm_optional_keyword_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_OPTIONAL_KEYWORD_PARAMETER_NODE> {};
|
|
481
|
+
static_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");
|
|
482
|
+
|
|
483
|
+
/** Maps pm_optional_parameter_node_t to PM_OPTIONAL_PARAMETER_NODE. */
|
|
484
|
+
template <> struct node_type<pm_optional_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_OPTIONAL_PARAMETER_NODE> {};
|
|
485
|
+
static_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");
|
|
486
|
+
|
|
487
|
+
/** Maps pm_or_node_t to PM_OR_NODE. */
|
|
488
|
+
template <> struct node_type<pm_or_node_t> : std::integral_constant<pm_node_type_t, PM_OR_NODE> {};
|
|
489
|
+
static_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");
|
|
490
|
+
|
|
491
|
+
/** Maps pm_parameters_node_t to PM_PARAMETERS_NODE. */
|
|
492
|
+
template <> struct node_type<pm_parameters_node_t> : std::integral_constant<pm_node_type_t, PM_PARAMETERS_NODE> {};
|
|
493
|
+
static_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");
|
|
494
|
+
|
|
495
|
+
/** Maps pm_parentheses_node_t to PM_PARENTHESES_NODE. */
|
|
496
|
+
template <> struct node_type<pm_parentheses_node_t> : std::integral_constant<pm_node_type_t, PM_PARENTHESES_NODE> {};
|
|
497
|
+
static_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");
|
|
498
|
+
|
|
499
|
+
/** Maps pm_pinned_expression_node_t to PM_PINNED_EXPRESSION_NODE. */
|
|
500
|
+
template <> struct node_type<pm_pinned_expression_node_t> : std::integral_constant<pm_node_type_t, PM_PINNED_EXPRESSION_NODE> {};
|
|
501
|
+
static_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");
|
|
502
|
+
|
|
503
|
+
/** Maps pm_pinned_variable_node_t to PM_PINNED_VARIABLE_NODE. */
|
|
504
|
+
template <> struct node_type<pm_pinned_variable_node_t> : std::integral_constant<pm_node_type_t, PM_PINNED_VARIABLE_NODE> {};
|
|
505
|
+
static_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");
|
|
506
|
+
|
|
507
|
+
/** Maps pm_post_execution_node_t to PM_POST_EXECUTION_NODE. */
|
|
508
|
+
template <> struct node_type<pm_post_execution_node_t> : std::integral_constant<pm_node_type_t, PM_POST_EXECUTION_NODE> {};
|
|
509
|
+
static_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");
|
|
510
|
+
|
|
511
|
+
/** Maps pm_pre_execution_node_t to PM_PRE_EXECUTION_NODE. */
|
|
512
|
+
template <> struct node_type<pm_pre_execution_node_t> : std::integral_constant<pm_node_type_t, PM_PRE_EXECUTION_NODE> {};
|
|
513
|
+
static_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");
|
|
514
|
+
|
|
515
|
+
/** Maps pm_program_node_t to PM_PROGRAM_NODE. */
|
|
516
|
+
template <> struct node_type<pm_program_node_t> : std::integral_constant<pm_node_type_t, PM_PROGRAM_NODE> {};
|
|
517
|
+
static_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");
|
|
518
|
+
|
|
519
|
+
/** Maps pm_range_node_t to PM_RANGE_NODE. */
|
|
520
|
+
template <> struct node_type<pm_range_node_t> : std::integral_constant<pm_node_type_t, PM_RANGE_NODE> {};
|
|
521
|
+
static_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");
|
|
522
|
+
|
|
523
|
+
/** Maps pm_rational_node_t to PM_RATIONAL_NODE. */
|
|
524
|
+
template <> struct node_type<pm_rational_node_t> : std::integral_constant<pm_node_type_t, PM_RATIONAL_NODE> {};
|
|
525
|
+
static_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");
|
|
526
|
+
|
|
527
|
+
/** Maps pm_redo_node_t to PM_REDO_NODE. */
|
|
528
|
+
template <> struct node_type<pm_redo_node_t> : std::integral_constant<pm_node_type_t, PM_REDO_NODE> {};
|
|
529
|
+
static_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");
|
|
530
|
+
|
|
531
|
+
/** Maps pm_regular_expression_node_t to PM_REGULAR_EXPRESSION_NODE. */
|
|
532
|
+
template <> struct node_type<pm_regular_expression_node_t> : std::integral_constant<pm_node_type_t, PM_REGULAR_EXPRESSION_NODE> {};
|
|
533
|
+
static_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");
|
|
534
|
+
|
|
535
|
+
/** Maps pm_required_keyword_parameter_node_t to PM_REQUIRED_KEYWORD_PARAMETER_NODE. */
|
|
536
|
+
template <> struct node_type<pm_required_keyword_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_REQUIRED_KEYWORD_PARAMETER_NODE> {};
|
|
537
|
+
static_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");
|
|
538
|
+
|
|
539
|
+
/** Maps pm_required_parameter_node_t to PM_REQUIRED_PARAMETER_NODE. */
|
|
540
|
+
template <> struct node_type<pm_required_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_REQUIRED_PARAMETER_NODE> {};
|
|
541
|
+
static_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");
|
|
542
|
+
|
|
543
|
+
/** Maps pm_rescue_modifier_node_t to PM_RESCUE_MODIFIER_NODE. */
|
|
544
|
+
template <> struct node_type<pm_rescue_modifier_node_t> : std::integral_constant<pm_node_type_t, PM_RESCUE_MODIFIER_NODE> {};
|
|
545
|
+
static_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");
|
|
546
|
+
|
|
547
|
+
/** Maps pm_rescue_node_t to PM_RESCUE_NODE. */
|
|
548
|
+
template <> struct node_type<pm_rescue_node_t> : std::integral_constant<pm_node_type_t, PM_RESCUE_NODE> {};
|
|
549
|
+
static_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");
|
|
550
|
+
|
|
551
|
+
/** Maps pm_rest_parameter_node_t to PM_REST_PARAMETER_NODE. */
|
|
552
|
+
template <> struct node_type<pm_rest_parameter_node_t> : std::integral_constant<pm_node_type_t, PM_REST_PARAMETER_NODE> {};
|
|
553
|
+
static_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");
|
|
554
|
+
|
|
555
|
+
/** Maps pm_retry_node_t to PM_RETRY_NODE. */
|
|
556
|
+
template <> struct node_type<pm_retry_node_t> : std::integral_constant<pm_node_type_t, PM_RETRY_NODE> {};
|
|
557
|
+
static_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");
|
|
558
|
+
|
|
559
|
+
/** Maps pm_return_node_t to PM_RETURN_NODE. */
|
|
560
|
+
template <> struct node_type<pm_return_node_t> : std::integral_constant<pm_node_type_t, PM_RETURN_NODE> {};
|
|
561
|
+
static_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");
|
|
562
|
+
|
|
563
|
+
/** Maps pm_self_node_t to PM_SELF_NODE. */
|
|
564
|
+
template <> struct node_type<pm_self_node_t> : std::integral_constant<pm_node_type_t, PM_SELF_NODE> {};
|
|
565
|
+
static_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");
|
|
566
|
+
|
|
567
|
+
/** Maps pm_shareable_constant_node_t to PM_SHAREABLE_CONSTANT_NODE. */
|
|
568
|
+
template <> struct node_type<pm_shareable_constant_node_t> : std::integral_constant<pm_node_type_t, PM_SHAREABLE_CONSTANT_NODE> {};
|
|
569
|
+
static_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");
|
|
570
|
+
|
|
571
|
+
/** Maps pm_singleton_class_node_t to PM_SINGLETON_CLASS_NODE. */
|
|
572
|
+
template <> struct node_type<pm_singleton_class_node_t> : std::integral_constant<pm_node_type_t, PM_SINGLETON_CLASS_NODE> {};
|
|
573
|
+
static_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");
|
|
574
|
+
|
|
575
|
+
/** Maps pm_source_encoding_node_t to PM_SOURCE_ENCODING_NODE. */
|
|
576
|
+
template <> struct node_type<pm_source_encoding_node_t> : std::integral_constant<pm_node_type_t, PM_SOURCE_ENCODING_NODE> {};
|
|
577
|
+
static_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");
|
|
578
|
+
|
|
579
|
+
/** Maps pm_source_file_node_t to PM_SOURCE_FILE_NODE. */
|
|
580
|
+
template <> struct node_type<pm_source_file_node_t> : std::integral_constant<pm_node_type_t, PM_SOURCE_FILE_NODE> {};
|
|
581
|
+
static_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");
|
|
582
|
+
|
|
583
|
+
/** Maps pm_source_line_node_t to PM_SOURCE_LINE_NODE. */
|
|
584
|
+
template <> struct node_type<pm_source_line_node_t> : std::integral_constant<pm_node_type_t, PM_SOURCE_LINE_NODE> {};
|
|
585
|
+
static_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");
|
|
586
|
+
|
|
587
|
+
/** Maps pm_splat_node_t to PM_SPLAT_NODE. */
|
|
588
|
+
template <> struct node_type<pm_splat_node_t> : std::integral_constant<pm_node_type_t, PM_SPLAT_NODE> {};
|
|
589
|
+
static_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");
|
|
590
|
+
|
|
591
|
+
/** Maps pm_statements_node_t to PM_STATEMENTS_NODE. */
|
|
592
|
+
template <> struct node_type<pm_statements_node_t> : std::integral_constant<pm_node_type_t, PM_STATEMENTS_NODE> {};
|
|
593
|
+
static_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");
|
|
594
|
+
|
|
595
|
+
/** Maps pm_string_node_t to PM_STRING_NODE. */
|
|
596
|
+
template <> struct node_type<pm_string_node_t> : std::integral_constant<pm_node_type_t, PM_STRING_NODE> {};
|
|
597
|
+
static_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");
|
|
598
|
+
|
|
599
|
+
/** Maps pm_super_node_t to PM_SUPER_NODE. */
|
|
600
|
+
template <> struct node_type<pm_super_node_t> : std::integral_constant<pm_node_type_t, PM_SUPER_NODE> {};
|
|
601
|
+
static_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");
|
|
602
|
+
|
|
603
|
+
/** Maps pm_symbol_node_t to PM_SYMBOL_NODE. */
|
|
604
|
+
template <> struct node_type<pm_symbol_node_t> : std::integral_constant<pm_node_type_t, PM_SYMBOL_NODE> {};
|
|
605
|
+
static_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");
|
|
606
|
+
|
|
607
|
+
/** Maps pm_true_node_t to PM_TRUE_NODE. */
|
|
608
|
+
template <> struct node_type<pm_true_node_t> : std::integral_constant<pm_node_type_t, PM_TRUE_NODE> {};
|
|
609
|
+
static_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");
|
|
610
|
+
|
|
611
|
+
/** Maps pm_undef_node_t to PM_UNDEF_NODE. */
|
|
612
|
+
template <> struct node_type<pm_undef_node_t> : std::integral_constant<pm_node_type_t, PM_UNDEF_NODE> {};
|
|
613
|
+
static_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");
|
|
614
|
+
|
|
615
|
+
/** Maps pm_unless_node_t to PM_UNLESS_NODE. */
|
|
616
|
+
template <> struct node_type<pm_unless_node_t> : std::integral_constant<pm_node_type_t, PM_UNLESS_NODE> {};
|
|
617
|
+
static_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");
|
|
618
|
+
|
|
619
|
+
/** Maps pm_until_node_t to PM_UNTIL_NODE. */
|
|
620
|
+
template <> struct node_type<pm_until_node_t> : std::integral_constant<pm_node_type_t, PM_UNTIL_NODE> {};
|
|
621
|
+
static_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");
|
|
622
|
+
|
|
623
|
+
/** Maps pm_when_node_t to PM_WHEN_NODE. */
|
|
624
|
+
template <> struct node_type<pm_when_node_t> : std::integral_constant<pm_node_type_t, PM_WHEN_NODE> {};
|
|
625
|
+
static_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");
|
|
626
|
+
|
|
627
|
+
/** Maps pm_while_node_t to PM_WHILE_NODE. */
|
|
628
|
+
template <> struct node_type<pm_while_node_t> : std::integral_constant<pm_node_type_t, PM_WHILE_NODE> {};
|
|
629
|
+
static_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");
|
|
630
|
+
|
|
631
|
+
/** Maps pm_x_string_node_t to PM_X_STRING_NODE. */
|
|
632
|
+
template <> struct node_type<pm_x_string_node_t> : std::integral_constant<pm_node_type_t, PM_X_STRING_NODE> {};
|
|
633
|
+
static_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");
|
|
634
|
+
|
|
635
|
+
/** Maps pm_yield_node_t to PM_YIELD_NODE. */
|
|
636
|
+
template <> struct node_type<pm_yield_node_t> : std::integral_constant<pm_node_type_t, PM_YIELD_NODE> {};
|
|
637
|
+
static_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");
|
|
638
|
+
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
#endif
|