1
- # Copyright (c) 2024 Arihiro Yoshida. All rights reserved.
1
+ # Copyright (c) 2024-2025 Arihiro Yoshida. All rights reserved.
2
2
#
3
3
# Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
# of this software and associated documentation files (the "Software"), to deal
18
18
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
# THE SOFTWARE.
20
20
21
- # AST utility import file: version 2.1.0
21
+ %common {
22
+ /* Using AST utility import file version 2.2.0 */
23
+ }
22
24
23
25
%header {
24
26
#ifdef __cplusplus
@@ -106,7 +108,7 @@ ${prefix}_ast_node_t *${prefix}_ast_node__create_binary(${prefix}_ast_manager_t
106
108
${prefix}_ast_node_t *${prefix}_ast_node__create_ternary(${prefix}_ast_manager_t *mgr, ${prefix}_ast_range_t range, int label, ${prefix}_ast_node_t *node0, ${prefix}_ast_node_t *node1, ${prefix}_ast_node_t *node2);
107
109
${prefix}_ast_node_t *${prefix}_ast_node__create_variadic(${prefix}_ast_manager_t *mgr, ${prefix}_ast_range_t range, int label);
108
110
${prefix}_ast_node_t *${prefix}_ast_node__add_child(${prefix}_ast_node_t *obj, ${prefix}_ast_node_t *node); /* for a variadic node only */
109
- void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj);
111
+ void ${prefix}_ast_node__destroy(${prefix}_ast_manager_t *mgr, ${prefix} _ast_node_t *obj);
110
112
111
113
#ifndef ${PREFIX}_AST_NODE_STRING_CAPTURING_DISABLED
112
114
#define ${prefix}_ast_node__get_string(obj) ((const char *)(obj->string))
@@ -115,19 +117,19 @@ void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj);
115
117
#endif
116
118
117
119
#ifdef ${PREFIX}_AST_MANAGER_CUSTOM_DATA_DEFINED
118
- void ${prefix}_ast_manager_custom_data__initialize(${prefix}_ast_manager_custom_data_t *obj);
119
- void ${prefix}_ast_manager_custom_data__finalize(${prefix}_ast_manager_custom_data_t *obj);
120
+ void ${prefix}_ast_manager_custom_data__initialize(${prefix}_ast_manager_t *mgr, ${prefix} _ast_manager_custom_data_t *obj);
121
+ void ${prefix}_ast_manager_custom_data__finalize(${prefix}_ast_manager_t *mgr, ${prefix} _ast_manager_custom_data_t *obj);
120
122
#else
121
- #define ${prefix}_ast_manager_custom_data__initialize(obj) ((void)0)
122
- #define ${prefix}_ast_manager_custom_data__finalize(obj) ((void)0)
123
+ #define ${prefix}_ast_manager_custom_data__initialize(mgr, obj) ((void)0)
124
+ #define ${prefix}_ast_manager_custom_data__finalize(mgr, obj) ((void)0)
123
125
#endif
124
126
125
127
#ifdef ${PREFIX}_AST_NODE_CUSTOM_DATA_DEFINED
126
- void ${prefix}_ast_node_custom_data__initialize(${prefix}_ast_node_custom_data_t *obj);
127
- void ${prefix}_ast_node_custom_data__finalize(${prefix}_ast_node_custom_data_t *obj);
128
+ void ${prefix}_ast_node_custom_data__initialize(${prefix}_ast_manager_t *mgr, ${prefix} _ast_node_custom_data_t *obj);
129
+ void ${prefix}_ast_node_custom_data__finalize(${prefix}_ast_manager_t *mgr, ${prefix} _ast_node_custom_data_t *obj);
128
130
#else
129
- #define ${prefix}_ast_node_custom_data__initialize(obj) ((void)0)
130
- #define ${prefix}_ast_node_custom_data__finalize(obj) ((void)0)
131
+ #define ${prefix}_ast_node_custom_data__initialize(mgr, obj) ((void)0)
132
+ #define ${prefix}_ast_node_custom_data__finalize(mgr, obj) ((void)0)
131
133
#endif
132
134
133
135
#ifdef __cplusplus
@@ -182,14 +184,14 @@ ${prefix}_ast_range_t ${prefix}_ast_range__new(size_t start, size_t end) {
182
184
183
185
void ${prefix}_ast_manager__initialize(${prefix}_ast_manager_t *obj) {
184
186
obj->first = NULL;
185
- ${prefix}_ast_manager_custom_data__initialize(&(obj->custom));
187
+ ${prefix}_ast_manager_custom_data__initialize(obj, &(obj->custom));
186
188
}
187
189
188
190
void ${prefix}_ast_manager__finalize(${prefix}_ast_manager_t *obj) {
189
- ${prefix}_ast_manager_custom_data__finalize(&(obj->custom));
191
+ ${prefix}_ast_manager_custom_data__finalize(obj, &(obj->custom));
190
192
while (obj->first) {
191
193
assert(obj->first->manager == obj);
192
- ${prefix}_ast_node__destroy(obj->first);
194
+ ${prefix}_ast_node__destroy(obj, obj ->first);
193
195
}
194
196
}
195
197
@@ -214,7 +216,7 @@ void ${prefix}_ast_node_array__initialize(${prefix}_ast_manager_t *mgr, ${prefix
214
216
void ${prefix}_ast_node_array__finalize(${prefix}_ast_manager_t *mgr, ${prefix}_ast_node_array_t *obj) {
215
217
while (obj->len > 0) {
216
218
obj->len--;
217
- ${prefix}_ast_node__destroy(obj->node[obj->len]);
219
+ ${prefix}_ast_node__destroy(mgr, obj->node[obj->len]);
218
220
}
219
221
PCC_AST_FREE(mgr, obj->node);
220
222
}
@@ -314,7 +316,7 @@ static ${prefix}_ast_node_t *${prefix}_ast_node__create_(${prefix}_ast_manager_t
314
316
${prefix}_ast_node_t *${prefix}_ast_node__create_nullary(${prefix}_ast_manager_t *mgr, ${prefix}_ast_range_t range, int label) {
315
317
${prefix}_ast_node_t *const obj = ${prefix}_ast_node__create_(mgr, range, label);
316
318
obj->type = ${PREFIX}_AST_NODE_TYPE_NULLARY;
317
- ${prefix}_ast_node_custom_data__initialize(&(obj->custom));
319
+ ${prefix}_ast_node_custom_data__initialize(mgr, &(obj->custom));
318
320
return obj;
319
321
}
320
322
@@ -334,7 +336,7 @@ ${prefix}_ast_node_t *${prefix}_ast_node__create_unary(${prefix}_ast_manager_t *
334
336
${prefix}_ast_node__unlink_parent_(node);
335
337
node->parent = obj;
336
338
}
337
- ${prefix}_ast_node_custom_data__initialize(&(obj->custom));
339
+ ${prefix}_ast_node_custom_data__initialize(mgr, &(obj->custom));
338
340
return obj;
339
341
}
340
342
@@ -353,7 +355,7 @@ ${prefix}_ast_node_t *${prefix}_ast_node__create_binary(${prefix}_ast_manager_t
353
355
}
354
356
}
355
357
}
356
- ${prefix}_ast_node_custom_data__initialize(&(obj->custom));
358
+ ${prefix}_ast_node_custom_data__initialize(mgr, &(obj->custom));
357
359
return obj;
358
360
}
359
361
@@ -373,15 +375,15 @@ ${prefix}_ast_node_t *${prefix}_ast_node__create_ternary(${prefix}_ast_manager_t
373
375
}
374
376
}
375
377
}
376
- ${prefix}_ast_node_custom_data__initialize(&(obj->custom));
378
+ ${prefix}_ast_node_custom_data__initialize(mgr, &(obj->custom));
377
379
return obj;
378
380
}
379
381
380
382
${prefix}_ast_node_t *${prefix}_ast_node__create_variadic(${prefix}_ast_manager_t *mgr, ${prefix}_ast_range_t range, int label) {
381
383
${prefix}_ast_node_t *const obj = ${prefix}_ast_node__create_(mgr, range, label);
382
384
obj->type = ${PREFIX}_AST_NODE_TYPE_VARIADIC;
383
385
${prefix}_ast_node_array__initialize(mgr, &(obj->data.variadic));
384
- ${prefix}_ast_node_custom_data__initialize(&(obj->custom));
386
+ ${prefix}_ast_node_custom_data__initialize(mgr, &(obj->custom));
385
387
return obj;
386
388
}
387
389
@@ -399,9 +401,9 @@ ${prefix}_ast_node_t *${prefix}_ast_node__add_child(${prefix}_ast_node_t *obj, $
399
401
return obj;
400
402
}
401
403
402
- void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj) {
404
+ void ${prefix}_ast_node__destroy(${prefix}_ast_manager_t *mgr, ${prefix} _ast_node_t *obj) {
403
405
if (obj) {
404
- ${prefix}_ast_node_custom_data__finalize(&(obj->custom));
406
+ ${prefix}_ast_node_custom_data__finalize(mgr, &(obj->custom));
405
407
#ifndef ${PREFIX}_AST_NODE_STRING_CAPTURING_DISABLED
406
408
PCC_AST_FREE(obj->manager, obj->string);
407
409
#endif
@@ -414,7 +416,7 @@ void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj) {
414
416
if (node) {
415
417
assert(node->parent == obj);
416
418
node->parent = NULL;
417
- ${prefix}_ast_node__destroy(node);
419
+ ${prefix}_ast_node__destroy(mgr, node);
418
420
}
419
421
}
420
422
break;
@@ -426,7 +428,7 @@ void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj) {
426
428
if (node) {
427
429
assert(node->parent == obj);
428
430
node->parent = NULL;
429
- ${prefix}_ast_node__destroy(node);
431
+ ${prefix}_ast_node__destroy(mgr, node);
430
432
}
431
433
}
432
434
}
@@ -439,7 +441,7 @@ void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj) {
439
441
if (node) {
440
442
assert(node->parent == obj);
441
443
node->parent = NULL;
442
- ${prefix}_ast_node__destroy(node);
444
+ ${prefix}_ast_node__destroy(mgr, node);
443
445
}
444
446
}
445
447
}
@@ -451,7 +453,7 @@ void ${prefix}_ast_node__destroy(${prefix}_ast_node_t *obj) {
451
453
if (node) {
452
454
assert(node->parent == obj);
453
455
node->parent = NULL;
454
- ${prefix}_ast_node__destroy(node);
456
+ ${prefix}_ast_node__destroy(mgr, node);
455
457
obj->data.variadic.node[i] = NULL;
456
458
}
457
459
}
0 commit comments