diff options
| author | Mel <mel@rnrd.eu> | 2026-05-03 19:54:15 +0200 |
|---|---|---|
| committer | Mel <mel@rnrd.eu> | 2026-05-03 19:54:15 +0200 |
| commit | 74ffd7a95c0894a96ab984e2c4d2cd9c75539af0 (patch) | |
| tree | ef8db3b3432dc1203b12079247c982892c7d21d1 /boot/visit/visit.c | |
| parent | 5211970448a05205b67d7604ad5e4e3925e4ddef (diff) | |
| download | catskill-74ffd7a95c0894a96ab984e2c4d2cd9c75539af0.tar.zst catskill-74ffd7a95c0894a96ab984e2c4d2cd9c75539af0.zip | |
IR visit system and pretty printer
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'boot/visit/visit.c')
| -rw-r--r-- | boot/visit/visit.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/boot/visit/visit.c b/boot/visit/visit.c new file mode 100644 index 0000000..8bc6cf7 --- /dev/null +++ b/boot/visit/visit.c @@ -0,0 +1,20 @@ +/* + * useful shared visit system helpers. + * + * Copyright (c) 2026, Mel G. <mel@rnrd.eu> + * + * SPDX-License-Identifier: MPL-2.0 + */ + +#pragma once + +#include "../catboot.h" + +#define VISIT(visit_function, node) visit->table->visit_function(visit, node); + +#define VISIT_MAYBE(visit_function, node) \ + if (node) visit->table->visit_function(visit, node) + +#define DATA_FOR_VISIT(type, name) \ + type* name = (type*)visit->user_data; \ + if (!name) { failure("visit user data is NULL for " #name); } |
