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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user