frontend: add parameters to print_ast_node iterator function

the caller can now specify whether the nodes should be printed
in pre-order or post-order, and whether the output should be indented.
This commit is contained in:
2025-04-14 12:24:56 +01:00
parent 80e001cdc1
commit f123902215
2 changed files with 28 additions and 4 deletions

View File

@@ -2,6 +2,7 @@
#define DEBUG_H_
#include <ivy/status.h>
#include <stdbool.h>
struct ivy_token;
struct ivy_asm_token;
@@ -9,10 +10,18 @@ struct ivy_asm_token;
struct ivy_ast_node;
struct ivy_ast_node_iterator;
enum ivy_ast_iteration_type;
struct print_ast_node_args {
bool indent;
bool postorder;
};
extern void print_lex_token(struct ivy_token *tok);
extern void print_asm_lex_token(struct ivy_asm_token *tok);
extern enum ivy_status print_ast_node(
struct ivy_ast_node *node, struct ivy_ast_node_iterator *it);
struct ivy_ast_node *node, enum ivy_ast_iteration_type type,
struct ivy_ast_node_iterator *it, void *arg);
#endif