summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorQuinn Stephens <quinn@osmora.org>2025-06-09 22:11:41 -0400
committerQuinn Stephens <quinn@osmora.org>2025-06-09 22:11:41 -0400
commit24522c8496c2661ba90b560bed0da482a85c3c8d (patch)
tree17b6896149d533a98be3f7bc37de15ef9d8b9fa3 /src/main.c
parentf25568b5830beb9a12709644f26d4fc12a8cad79 (diff)
parser: Parse pointer levels (e.g. void **)
Signed-off-by: Quinn Stephens <quinn@osmora.org>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index c06d83e..13803be 100644
--- a/src/main.c
+++ b/src/main.c
@@ -33,18 +33,26 @@
#include "parser.h"
#include "parser/ast.h"
-static const char *src = "int x;\nvoid test();\nint main();\n";
+static const char *src = "int x;void **ptr;\nvoid *alloc();void test();\nint main();\n";
static void
print_func(struct ast_node *func)
{
- log_debug("found function \"%.*s\" (return type %s)\n", func->name_len, func->name, func->type->name);
+ if (func->ptr_levels > 0) {
+ log_debug("found function \"%.*s\" (returns %d-level pointer to %s)\n", func->name_len, func->name, func->ptr_levels, func->type->name);
+ } else {
+ log_debug("found function \"%.*s\" (returns %s)\n", func->name_len, func->name, func->type->name);
+ }
}
static void
print_var(struct ast_node *var)
{
- log_debug("found variable \"%.*s\" (type %s)\n", var->name_len, var->name, var->type->name);
+ if (var->ptr_levels > 0) {
+ log_debug("found variable \"%.*s\" (%d-level pointer to %s)\n", var->name_len, var->name, var->ptr_levels, var->type->name);
+ } else {
+ log_debug("found variable \"%.*s\" (%s)\n", var->name_len, var->name, var->type->name);
+ }
}
static void